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的线程:show processlist;

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

mariadb查询执行路径

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

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

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

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

    5:将结果返回给客户端

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

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

果,通过索引直接定位到了要加载的行

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)

  

             

mariadb一些命令介绍及mariadb架构图和索引的更多相关文章

  1. centos7安装MariaDB以及Failed to start mariadb.service: Unit not found的错误解决

    centos7下yum安装MariaDB CentOS 7下mysql下替换成MariaDB了.MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权 许可 Mari ...

  2. Mariadb/Mysql命令行常用命令

    一.初始化等 1.登陆数据库方法    mysql -u 用户名 -p 用户密码 2.修改root及用户密码 use mysql; update user set password=password( ...

  3. Linux下面MariaDB 管理命令基础使用

    MariaDB 是 MySQL 的一个分,由于某些原因,使之取代了Mysql成为了 RHEL/CentOS 7 的默认数据库.针对数据库的操作我们经常做的操作就是增删查改,接下来就介绍下 MariaD ...

  4. MariaDB基础命令

    关闭防火墙和selinux #systemctl stop firewalld 安装服务端和客户端mariadb # yum install mariadb-server mariadb -y mar ...

  5. [ Mariadb ] 通过HAProxy代理后端Mariadb实现负载均衡

    一.本次环境架构图 由于公司内网服务器有限,所以后端采用Mariadb自带的mysql_multi模型实现多实例. mysql的多实例有两种方式可以实现,两种方式各有利弊. 1.使用多个配置文件启动不 ...

  6. 常见Struts、Hibernate、Spring、J2EE、ibatis、Oracle等开发框架架构图及其简介

    各种系统架构图及其简介 转载请保留出处,不胜人生一场醉汇总. 以下文字和架构图均在本人相关系统设计和架构方案中有所应用. 原文出处:http://space.itpub.net/6517/viewsp ...

  7. 一、MegaCli命令介绍

    一.MegaCli命令介绍 MegaCli是一款管理维护硬件RAID软件,可以用来查看raid信息等MegaCli 的Media Error Count: 0 Other Error Count: 0 ...

  8. Docker实用命令介绍

    Docker实用命令介绍 1. docker启动.关闭.停止 ╭─wil-xz in ~ 12:15:44 ╰─٩(ŏ﹏ŏ.)۶ service docker restart Redirecting ...

  9. ENode 2.8 最新架构图简介

    ENode架构图 什么是ENode ENode是一个.NET平台下,纯C#开发的,基于DDD,CQRS,ES,EDA,In-Memory架构风格的,可以帮助开发者开发高并发.高吞吐.可伸缩.可扩展的应 ...

随机推荐

  1. 问答精华-IntelliJ IDEA快捷键大全

    这篇文章介绍了idea的默认快捷键http://www.jikexueyuan.com/blog/229.html 另外:老师将快捷键设置为eclipse的了,你需要在preference里面找到ke ...

  2. ios开发下的点透处理

    界面上有一个浮动的div,这个div下面有一个文本框,当给这个div绑定touchstar后,做了冒泡的处理代码,还是会出现点透现象,触发下面的的文本框事件.立马弹出一个输入法出来. 1.网上有一种方 ...

  3. 光流算法:Brox光流的OpenCV源码解析

    OpenCV中DeepFlow代码其实是Brox光流,而非真正的DeepFlow光流,在将近一个月的研究.移植及优化过程中,对Brox光流有了较深刻的认识.我对OpenCV中源码进行了详细的分析,并以 ...

  4. [DataTable] datatable根据表中的字段进行排序

    private DataTable SortTable(DataTable dt,string[] pids) { DataTable dt0 = dt.Clone(); //复制原表结构 ;i< ...

  5. codeforces 2B The least round way 【DP】

    VJ上可找到中文题意. 思路: 首先分解有多少2与多少5.接下来就是dp. 分两次,一次是根据2的数量贪心,另外一次是根据5的数量贪心,看哪一次乘积的末尾0最少. 需要注意的是两点: 1.输入有0的情 ...

  6. IntelliJ IDEA调整控制台输出字体大小

    File->Settings->Editor->Colors & Fonts->Console Font Size: 16

  7. maven Spring获取不到配置文件

    如题: 如果在maven项目中,Spring获取不到配置文件, 把配置文件放到.src/main/resource文件夹下即可 import org.springframework.context.s ...

  8. What is Split Brain in Oracle Clusterware and Real Application Cluster (文档 ID 1425586.1)

    In this Document   Purpose   Scope   Details   1. Clusterware layer   2. Real Application Cluster (d ...

  9. UVA 10245 - The Closest Pair Problem

    Problem JThe Closest Pair ProblemInput: standard inputOutput: standard outputTime Limit: 8 secondsMe ...

  10. EndNote文献管理

    一直想写个博客,但是一直没有好好坐下来对自己工作进行一个梳理.从今天开始吧,争取多写一点. 今天,先介绍一下科技论文写作中经常使用的一款软件EndNote,这个软件,掌握它的使用方法后会觉得很方便:但 ...