MySQL中的一些Tips,个人总结或者整理自网络

不明白为什么MySQL的很多材料中总是喜欢把联合(复合)索引和覆盖索引放在一块说事?

1,联合索引是一种索引的类型,指创建索引的时候包含了多个字段。
2,覆盖索引是一种查询优化行为,索引结构本身就可以满足查询,无需回表,而不是一种索引。
3,联合索引和覆盖索引并没有任何必然关系,单个字段的索引也有可能会发生覆盖索引的情况。


MySQL中的filesort

"using filesort" means that the sort can't be performed with an index. 仅此而已,并不一定真的使用文件完成排序。
mysql无法利用索引完成的排序操作成为“文件排序” ,当需要排序,而又无法直接通过索引直接完成排序,需要额外的操作的时候发生using filesort。
filesort只能应用在单个表上,如果有多个表的数据需要排序,那么MySQL会先使用using temporary保存临时数据,然后再在临时表上使用filesort进行排序,最后输出结果。


last_query_cost

对比MySQL不同写法或者改变了索引对象之后SQL的效率的时候,似乎只能傻傻地看执行时间以及一个粗略的执行计划,呵呵。
IO、CPU、内存使用都看不到,而last_query_cost似乎也不一定靠得住。
last_query_cost的单位也不是page什么的,应该是一个综合代价的值。
The Last_query_cost value can be computed accurately only for simple “flat” queries, not complex queries such as those with subqueries or UNION.
For the latter, the value is set to 0.

至于Profile或者performance_schema.events_stages_history_long 里面的信息,也就是看看sending data,也是一个综合资源消耗的时间结果。


Sending Data

Profile或者performance_schema.events_stages_history_long 中的Sending data
“Sending data”并不是单纯的发送数据,而是包括“收集 + 发送 数据”,说白了就是查询到结果返回的整个过程,MySQL里很多命名的东西都很有误导性,上面还在说filesort。
而performance_schema.events_stages_history_long中的绝大部分步骤,根本无法改变。
比如closing tables,cleaning up等等,本身就是查询引擎的一部分消耗,跟用户行为无关,用户也无法左右其时间消耗。


停止复制

  reset slave 只是删除了master.onfo和reply_log.info文件,复制同步信息还在,reset slave all彻底地清除复制。


 慢查询是否记录因阻塞造成超过long_query_time的查询?

  经过测试,答案是不会。慢查询在计算“慢”的查询的时候,是只计算正常执行时间超出long_query_time的查询,而不计算阻塞的时间。
  慢查询也不会因为超时或者其他原因造成的失败的查询。

  补充:在SQL Server中,类似于用于记录慢查询的trace或者扩展事件,在记录“慢查询”的时候,是会把阻塞时间也算作“慢”之内的。


MySQL中的预读

如果一个extent中的被顺序读取的page超过或者等于该参数变量的,innodb将会异步的将下一个extent读取到buffer pool中,
由参数innodb_read_ahead_threshold来控制
比如该参数的值为30,那么当该extent中有30个pages 被 sequentially的读取,则会触发innodb linear预读,将下一个extent读到内存中。


未完待续。

MySQL Tips的更多相关文章

  1. MySQL tips (日期时间操作/concat 等)

    1.  Query结尾要加一个分号: 2.  数据库和表 SHOW DATABASES;    USE YOUR_DB; SHOW TABLES; SHOW COLUMNS FROM study或者D ...

  2. Mysql tips 功能...

    1. mysql  GROUP_CONCAT() 使用 排序... SELECT shop.id, shop.name, shop.user_id, shop.address, shop.map_lo ...

  3. [MySQL Tips]:如何删除unique key约束

    [场景]: 假设最初创建了一个表bank,在street属性上添加了unique约束. create table branch( branch_name ) not null primary key, ...

  4. 【9-2】mysql数据库学习01

    mysql安装 下载社区版本MySQL软件包(地址),或者windows installer 接压缩安装包到目标路径 在系统变量Path中加入目标路径 在mysql安装路径下,修改配置文件mysql- ...

  5. mysql 视图(view)

    什么是视图 视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据. 数 ...

  6. MySQL – optimizer_search_depth

    Working on customer case today I ran into interesting problem – query joining about 20 tables (thank ...

  7. 关于MySQL的各种总结

    https://blog.atime.me/note/mysql-summary.html 总结使用MySQL过程中遇到的各种问题和一些有用的资源,配置等等.将之前的若干篇零散的文章汇总到一起,备忘. ...

  8. 学习笔记:The Best of MySQL Forum

    http://mysql.rjweb.org/bestof.html I have tagged many of the better forum threads. 'Better' is based ...

  9. MySQL之mysql命令使用详解

    MySQL Name mysql - the MySQL command-line tool Synopsis mysql [options] db_name Description mysql is ...

随机推荐

  1. oracle中创建数据库用户,并授权

    --查看表空间文件路径select * from dba_data_files where tablespace_name=$TABLESPACE CREATE TABLESPACE usr_aa D ...

  2. 鏈接Redis報錯`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379]

    問題 鏈接Redis報錯`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379] 解決 啟動 ...

  3. ubuntu ssh

    客户端 Client端生成公钥和密钥 在Ubuntu服务器上安装ssh 安装方法: apt-get install ssh 安装完成后验证是否SSH安装成功 验证方法: 在命令行模式下执行命令:ssh ...

  4. ubutun 下配置php和postgresql

    安装完成后,检查PHP扩展. php -m | grep pdo_pgsql php -m 和phpinfo应该是不同的配置文件, 你在php -m 中能看到的话, 说明你只在php -i|grup ...

  5. Eureka入门案例

    1.整体思路 1.1.服务注册中心Eureka(可以是一个集群,对外暴露自己的地址) 1.2.服务提供者:启动后向Eureka注册自己的信息(地址,提供什么服务) 1.3.客户端消费者:向Eureka ...

  6. 2018总结-->2019新目标

    2018完成的事情: ①考到了驾照: ②刷了很多题,春季找到了实习,赚到了去日本旅游的经费和2019毕业租房的预算,最后签了offer: ③去了西安.天津.山西,看到了不一样的人和事: ④发了小论文, ...

  7. docker 快速部署ES集群 spark集群

    1) 拉下来 ES集群  spark集群 两套快速部署环境, 并只用docker跑起来,并保存到私库. 2)弄清楚怎么样打包 linux镜像(或者说制作). 3)试着改一下,让它们跑在集群里面. 4) ...

  8. note 9 列表、时间复杂度、排序

    列表 List +内建(built-in)数据结构(data structure),用来存储一系列元素(items) 如:lst = [5.4,'hello',2] 前向索引.后向索引.切片.拼接.成 ...

  9. AX2012 ERP 维度相关表数据关系图

    AX2012比AX2009可怜的几个维度来说,太丰富了,可以无数个啊.维度多了,如何使用以及管理是个问题.这个需要在做调研时,充分分析讨论确定.以下为维度表关联关系,在做SQL取值时需要了解下,比如在 ...

  10. Halcon 17与 c# 混合编程

    这篇主要是C#和Halcon的混合编程,在此基础上对按键不同功能的划分,以及图片适应窗口和从本地打开图片. halcon源程序:   dev_open_window(0, 0, 512, 512, ' ...