mysql优化的关键_个人总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/y41992910/article/details/83346284

1.知道什么是索引

  • 官网的翻译解释:
    数据本身之外,数据库还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构的基础上实现高级查找算法。这种数据结构就是索引。

  • MySQL官方对索引的解释:索引是帮助MySQL高效获取数据的数据结构。

索引本质上是一种数据结构,用于快速的查找数据和排序数据,别说什么书籍的目录,太low了。


2.索引的主要作用

  • 快速查找数据
  • 快速排序数据

3.索引在查询,排序,分组等情况下,如何生效。记住口诀

假如有索引(a,b,c)

  • 在select xxx where a = xxx and b = xxx and xxx 的情况下 where后面的查询条件的顺序和个数要符合索引的个数和顺序(最后面的可以少,但是开头必须有,中间不能断。即:可以a或者a,b或者a,b,c但是不能是b或者a,c)
  • 在order by的情况下,order by 后面的排序的顺序和个数要符合索引的个数和顺序(最后面的可以少,但是开头必须有,中间不能断。即:可以a或者a,b或者a,b,c但是不能是b或者a,c);
  • order by 的特殊说明,如果前面有了where a = 1 order by b,c这样也是可以的(等效于order by a=1,b,c)

4.索引失效的情况


5.explain
知道它的作用,以及他的每个参数的主要性能指标。以及如何根据指标进行优化
使用explain关键字可以模拟优化器执行sql查询语句,从而知道Mysql是如何处理你的sql语句的.

如何使用
explain + sql语句.

指标中最重要的五个是:
id,type,key,rows,Extra。

扫描二维码关注公众号,回复: 3963952 查看本文章

6.慢查询

知道如何开启慢查询,怎么设置慢查询,怎么知道哪些语句慢了

查询是否开启慢查询sql功能
SHOW VARIABLES LIKE ‘%slow_query_log%’;

SHOW VARIABLES LIKE ‘%long_query_time%’;

怎么样模拟出慢sql
select sleep(秒数);

查看慢日志
cat xxx.log

查看记录有几条慢日志
SHOW GLOBAL STATUS LIKE ‘%Slow_queries%’;

日志分析工具:mysqldumpslow

得到返回记录集最多的10个sql
mysqldumpslow -s r -t 10 +慢查询日志的全路径

得到访问次数最多的10个sql
mysqldumpslow -s c -t 10 +慢查询日志的全路径


7.show profile
如何开启,怎么诊断,诊断的结果以及主要的性能指标
什么是show profile
MySQL用来分享当前语句的资源消耗情况的工具。

如何开启profile,系统默认是关闭的
show variable like ‘%profiling%’
set profiling=on

如何查询最近记录下来的profile
show profile
show profile CPU, block io for query +id
show profile可以展示那些参数,哪些参数是主要的
cpu,block io
出现那些参数的时候,是表示性能差了。
1.converting head to myisam,查询结果数据集太大了
2. creating tem table,创建了临时表
3.copying to tem table on disk,把内存中的临时表复制到了硬盘中


8.服务器性能参数调节设置

猜你喜欢

转载自blog.csdn.net/y41992910/article/details/83346284
今日推荐