information_schema.optimizer_trace学习】的更多相关文章

information_schema.optimizer_trace 用于追踪优化器的优化过程:通常来说这张表中是没有数据的,要想开户追踪要把 @@session.optimizer_trace='enabled=on,one_line=on' information_schema.optimizer_trace表的常用列: 1.query :查询语句 2.trace :查询的追踪信息 例子: 1.没有打开@@session.optmizer_trace='enabled=on,one_line…
information_schema.referential_constraints 表用于查看外键约束 1.information_schema.referential_constraints表的常用列: 1.constraint_schema :约束(外键)所在的库名 2.constraint_name :约束名(外键名) 3.unique_constraint_schema :被引用约束所在库名 4.unique_constraint_name :被引用约束名 2.例子: 1.定义一对有外…
information_schema.profiling可以用来分析每一条SQL在它执行的各个阶段的用时,注意这个表是session 级的,也就是说如果session1 开启了它:session2没有开启 这个情况下session2 去查询只会返回一个空表 1.set @@ssesion.profiling=1 可以开启information_schema.profiling相关监测 2.information_schema.profiling 表的常用列 1.query_id :查询id 用于…
mysql实例中的每一个trigger 对应到information_schema.triggers 中有一行 1.information_schema.triggers 表的常用列: 1.trigger_catalog :永远是def 2.trigger_schema :trigger 所在的数据库名 3.event_manipulation :触发trigger 的事件类型可以是 insert | update | delete 4.event_object_schema  :trigger…
information_schema.routines 用户查看mysql中的routine信息 1.information_schema.routines 表中的常用列: 1.…
information_schema.key_column_usage 表可以查看索引列上的约束: 1.information_schema.key_column_usage 的常用列: 1.constraint_catalog :约束类型这个永远是def 2.constraint_schema :约束所在的数据库名 3.constraint_name :约束名 4.table_catalog :表类型这个永远是def 5.table_schema  :表所在的数据库名 6.column_nam…
information_schema.events 表保存了整个mysql实例中的event 信息 1.常用列: 1.event_catalog :永远是def 2.event_schema :event 所在的数据库名 3.event_name :event 名 4.definer  :创建这个event 的用户 5.event_definition :event 的内容 6.event_type :event 的类型 one time 表示执行一次,RECURRING表示重复执行. 7.st…
当前mysql实例的存储引擎信息可以从information_schema.engines 中查询到 例子: mysql> select * from information_schema.engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | ENGINE | SU…
mysql 的授权是分层次的 实例级 | 库级 | 表级 | 列级 而这些授权信息被保存在了mysql.user | mysql.db | mysql.tables_priv | mysql.column_priv 等表中 而information_schema.column_privileges 表中的信息来自于mysql.column_priv 表 1.information_schema.column_privileges 表中常用的列: 1.grantee :用户(对列就相应权限的用户)…
每一个表中的每一列都会在information_schema.columns表中对应一行 1.informaiton_schema.columns 常用列: 1.table_catalog :不管是table | view 这个列的值总是def 2.table_schema  :表 | 视图所在的数据库名 3.table_name  :表名 | 视图名 4.column_name  :列名 5.column_default   :列的默认值 6.is_nullable  :是否可以取空值 7.d…
字符集和排序规则之间是不可以随便搭配的.如果你想知道一个字符集它所搭配的排序规则有哪些?那就可以从information_schema.collation_character_set_applicability 这个表来看 1.information_schema.collation_character_set_applicability 常用列说明: 1.character_set_name :字符集名 2.collation_name  :排序规则名 2.例子: 测试字符集和与之匹配的排序规…
information_schema.collations 表中的每一行对应一个排序规则 1.information_schema.collations 表中学用列: 1.id :排序规则的ID 2.is_default :是否是字符集的默认排序规则 3.collation_name :排序规则名 4.character_set_name  :这个排序规则所对应的字符集名字 5.is_compiled :是不已经被编译进MySQL来了 2.例子: 查看实例的排序规则信息 select id, i…
information_schema.character_sets 表用于查看字符集的详细信息 1.character_sets 常用列说明: 1.character_set_name: 字符集名 2.default_collate_name:  默认排序规则 3.description:  描述信息 4.maxlen:  单个字符最大占用字节数 2.例子: 查看与字符集相关的信息 select character_set_name,-- 字符集名 default_collate_name, -…
1.partitions 表中的常用列说明: 1.table_schema:表所在的数据库名 2.table_name:表名 3.partition_method:表分区采用的分区方法 4.partition_expression:分区键 5.partions_name:分区名 6.table_rows:分区中所包涵的数据行数 7.data_free:分区中还未使用的空间 2.例子: 查询实例中的分区表.分区方法,分区字段 select concat(table_schema,'.',table…
这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益. 1:KEY_COLUMN_USAGE 按照官方的解释,这个表描述的是关于有约束的列.也就是没有约束的列都不会显示出来,按照整库查了一下,我里面有五张表,结果这个库记录的只有一条信息.因为只有这个列有约束,其他几张表都是测试玩的,并没有什么约束. 我现在创建两张表主键外键关联关系,然后查一下记录: 看一下就很是明朗了有没有,test1的ID只是主键,后面的关联就会显示…
一 .引子 我在上一篇文章,为你讲解完 order by 语句的几种执行模式后,就想到了之前一个做英语学习 App 的朋友碰到过的一个性能问题.今天这篇文章,我就从这个性能问题说起,和你说说 MySQL 中的另外一种排序需求,希望能够加深你对 MySQL 排序逻辑的理解. 这个英语学习 App 首页有一个随机显示单词的功能,也就是根据每个用户的级别有一个单词表,然后这个用户每次访问首页的时候,都会随机滚动显示三个单词.他们发现随着单词表变大,选单词这个逻辑变得越来越慢,甚至影响到了首页的打开速度…
MySQL的explain是各种执行计划选择的结果,如果想看整个执行计划以及对于多种索引方案之间是如何选择的? MySQL5.6中支持这个功能,optimizer_trace 这个是mysql的参数,默认是关闭的 mysql> set optimizer_trace="enabled=on"; Query OK, 0 rows affected (0.00 sec) mysql> show variables like '%optimizer_trace%'; +-----…
http://blog.csdn.net/xj626852095/article/details/52767963 step 1 使用explain 查看执行计划, 5.6后可以加参数 explain format=json xxx 输出json格式的信息 step 2  使用profiling详细的列出在每一个步骤消耗的时间,前提是先执行一遍语句. #打开profiling 的设置 SET profiling = 1; SHOW VARIABLES LIKE '%profiling%'; #查…
一 表结构如下: CREATE TABLE t_audit_operate_log (  Fid bigint(16) AUTO_INCREMENT,  Fcreate_time int(10) unsigned NOT NULL DEFAULT '0',  Fuser varchar(50) DEFAULT '',  Fip bigint(16) DEFAULT NULL,  Foperate_object_id bigint(20) DEFAULT '0',  PRIMARY KEY (Fi…
简述: explain为mysql提供语句的执行计划信息.可以应用在select.delete.insert.update和place语句上.explain的执行计划,只是作为语句执行过程的一个参考,实际执行的过程不一定和计划完全一致,但是执行计划中透露出的讯息却可以帮助选择更好的索引和写出更优化的查询语句. EXPLAIN输出项(可参考mysql5.7文档) 备注:当使用FORMAT=JSON, 返回的数据为json结构时,JSON Name为null的不显示.(参考文档:https://de…
一.explain mysql> explain select host,user,plugin from user ;+----+-------------+-------+------+---------------+------+---------+------+------+-------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+------…
在我们调优MySQL的SQL时候,通常使用三种工具进行查看sql执行的效率,explain.profile.optimizer_trace.前两个经常被人使用,由于第三个难度较大,大家使用的较少,下面简单说下如何使用.   opitimizer_trace的使用: # 开启跟踪,默认是关闭的 SET optimizer_trace="enabled=on";       #执行你的sql语句 select .... #查看trace信息 SELECT * FROM INFORMATIO…
13. OPTIMIZER_TRACE OPTIMIZER_TRACE表提供由跟踪语句的优化程序跟踪功能生成的信息. 要启用跟踪,请使用optimizer_trace系统变量. 有关详细信息,请参阅MySQL内部:跟踪优化程序. OPTIMIZER_TRACE表有以下列: QUERY :跟踪的文本 TRACE :以JSON格式跟踪 MISSING_BYTES_BEYOND_MAX_MEM_SIZE:跟踪的每个文件是一个字符串,随着优化的进行而扩展,并将数据附加到该字符串. optimizer_t…
INFORMATION_SCHEMA 表 INFORMATION_SCHEMA 简介 INFORMATION_SCHEMA.CHARACTER_SETS INFORMATION_SCHEMA.COLLATIONS INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY INFORMATION_SCHEMA.COLUMNS INFORMATION_SCHEMA.COLUMN_PRIVILEGES INFORMATION_SCHEMA.ENG…
一.今日内容概要 在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求.还是以我们前面举例用过的市民表为例,假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前 1000 个人的姓名.年龄. 假设这个表的部分定义是这样的: CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL,…
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 一.导读 二.步骤 2.1 SQL语句 2.2 直方图案例 2.3 查看直方图统计信息 2.3 直方图分类 2.4 使用限制 三.直方图使用案例 四.直方图资源消耗 五.总结 文章推荐: 关于 GreatSQL 一.导读 MySQL 8.0.19 开始支持对InnoDB引擎表数据进行采样以生成直方图统计信息. 直方图(Histogram)是关系型数据库中提供的一种基础的统计信息,最典型的用途是估计查询谓词的选择率…
背景: 之前介绍过 MySQL 5.5 新功能.参数,现在要用MySQL5.6,所以就学习和了解下MySQL5.6新的特性和功能,尽量避免踩坑.在后续的学习过程中文章也会不定时更新. 一:参数默认值的改变. Table Changes to Server Defaults in MySQL 5.6 Parameter Old Default New Default Version back_log 50 Autosized usingmax_connections 5.6.6 binlog_ch…
一次 group by + order by 性能优化分析 最近通过一个日志表做排行的时候发现特别卡,最后问题得到了解决,梳理一些索引和MySQL执行过程的经验,但是最后还是有5个谜题没解开,希望大家帮忙解答下. 主要包含如下知识点 用数据说话证明慢日志的扫描行数到底是如何统计出来的 从 group by 执行原理找出优化方案 排序的实现细节 gdb 源码调试 背景 需要分别统计本月.本周被访问的文章的 TOP10.日志表如下 CREATE TABLE `article_rank` ( `id`…
先来看一个栗子 EXPLAIN select * from employees where name > 'a'; 如果用name索引查找数据需要遍历name字段联合索引树,然后根据遍历出来的主键值去主键索引树里再去查出最终数据,成本比全表扫描还高. 可以用覆盖索引优化,这样只需要遍历name字段的联合索引树就可以拿到所有的结果. EXPLAIN select name,age,position from employees where name > 'a'; 可以看到通过select出的字段…
-- 示例表 CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(20) NOT NULL DEFAULT '0' COMMENT '年龄', `position` varchar(20) NOT NULL DEFAULT '' COMMENT '职位', `hire_time` timesta…