zoukankan      html  css  js  c++  java
  • mariadb一些命令介绍及mariadb架构图和索引

    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)

      

                 

  • 相关阅读:
    ActiveSync合作关系对话框的配置
    WINCE对象存储区(object store)
    Wince 隐藏TASKBAR的方法
    Wince输入法换肤换语言机制
    poj 3080 Blue Jeans 解题报告
    codeforces A. Vasily the Bear and Triangle 解题报告
    hdu 1050 Moving Tables 解题报告
    hdu 1113 Word Amalgamation 解题报告
    codeforces A. IQ Test 解题报告
    poj 1007 DNA Sorting 解题报告
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5528505.html
Copyright © 2011-2022 走看看