阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MariaDB命令介绍及MariaDB架构图和索引

138次阅读
没有评论

共计 2317 个字符,预计需要花费 6 分钟才能阅读完成。

mariadb> SHOW GLOBAL VARIABLES; 全局变量影响服务器的全局操作

mariadb> SHOW [SESSION] VARIABLES; 客户端变量,只对当前会话生效

注意:其中有些参数支持运行时修改,会立即生效;有些参数不支持,且只能通过修改配置文件,并重启服务器程序生效

有些参数作用域是全局的,且不可改变;有些可以为每个用户提供单独的设置

修改服务器变量的值

全局:mariadb> SET GLOBAL system_varname=value;

mariadb> SET @@global.system_varname=value;

会话:mariadb> SET [SESSION] system_varname=value;

例如:set global sql_mode=strict_trans_tables; 常用 MODE:TRADITIONAL, STRICT_TRANS_TABLES

sql_mode 默认为空,建议开发人员将这个值设为严格模式,这样有些问题可以在数据库的设计和开发阶段就能发现,而如果在生产环境下运行数据库后发现这类问题,那么修改的代价将变得十分巨大

状态变量:用于保存 mariadb 运行中的统计数据的变量

  mariadb> SHOW GLOBAL STATUS;

mariadb> SHOW [SESSION] STATUS;

 

如何获取程序默认使用的配置:mysql –print-defaults(客户端) mysqld –print-defaults(服务端)

mariadb 工作于单进程多线程模式,下面是一张 mariadb 架构图

MariaDB 命令介绍及 MariaDB 架构图和索引

mariadb 查询执行路径

1:客户端发送一条查询给服务器

2:服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段

3:服务器端进行 SQL 解析、预处理,再由优化器生成对应的执行计划

4:MariaDB 根据优化器生成的执行计划,调用存储引擎的 API 来执行查询

5:将结果返回给客户端

MariaDB 命令介绍及 MariaDB 架构图和索引

上面这张图可以看到整个 students 表中,StuID 字段有一个叫 PRIMARY 的索引

MariaDB 命令介绍及 MariaDB 架构图和索引

key: PRIMARY 此次查询用到的索引 type: const 这个字段表示查询一行,在数据库中直接加载一行 (rows: 1),这就是索引的效果,通过索引直接定位到了要加载的行

MariaDB 命令介绍及 MariaDB 架构图和索引

age 字段中没有索引,type: ALL:进行了全表扫描,取了 25 行 (rows: 25),  把所有行都取出来后使用 where 条件对每一行逐个过滤

(Extra: Using where)

如果表的数据大的话,第二种相对于第一种查询会很慢!!

 

查询缓存:

查询语句任何字符上的不同,都会导致缓存不能命中,缓存的数据都放在内存中

哪些查询可能不会被缓存:查询中包含 UDF、存储函数、用户自定义变量、临时表、mysql 库中系统表、或者包含列级权限的

表、有着不确定值的函数 (Now())

 

查询缓存相关的服务器变量:query_cache_min_res_unit: 查询缓存中内存块的最小分配单位

较小值会减少浪费,但会导致更频繁的内存分配操作,较大值会带来浪费,导致碎片过多

query_cache_limit:能够缓存的最大查询结果

query_cache_size:查询缓存总共可用的内存空间;单位是字节,必须是 1024 的整数倍,默认为 0 表示不开启

query_cache_wlock_invalidate:如果某表被其它的连接锁定,是否仍然可以从查询缓存中返回结果;默认值为 OFF,表示可以在表

被其它连接的场景中继续从缓存返回数据;ON 则表示不允许

以上变量可以通过 show global variables like ‘%query%’; 命令获取

查看缓存命中次数:show global status like ‘Qcache%’;

查看查询次数 show global status like ‘com_select’;

缓存命中率的评估:Qcache_hits/(Qcache_hits+Com_select)

Linux 系统教程:如何检查 MariaDB 服务端版本  http://www.linuxidc.com/Linux/2015-08/122382.htm

MariaDB Proxy 读写分离的实现 http://www.linuxidc.com/Linux/2014-05/101306.htm

Linux 下编译安装配置 MariaDB 数据库的方法 http://www.linuxidc.com/Linux/2014-11/109049.htm

CentOS 系统使用 yum 安装 MariaDB 数据库 http://www.linuxidc.com/Linux/2014-11/109048.htm

安装 MariaDB 与 MySQL 并存 http://www.linuxidc.com/Linux/2014-11/109047.htm

Ubuntu 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10  http://www.linuxidc.com/Linux/2014-11/109471.htm

[翻译]Ubuntu 14.04 (Trusty) Server 安装 MariaDB  http://www.linuxidc.com/Linux/2014-12/110048htm

MariaDB 的详细介绍 :请点这里
MariaDB 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-05/131831.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2317字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中