MySQL优化-MySQL优化步骤、慢查询、优化表空间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL优化-MySQL优化步骤、慢查询、优化表空间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2731字,纯文字阅读大概需要4分钟。
内容图文
![MySQL优化-MySQL优化步骤、慢查询、优化表空间](/upload/InfoBanner/zyjiaocheng/867/04d738195deb451bbacb5583f2f148c9.jpg)
SQL语句优化
1)优化SQL语句的一般步骤
1. 查询日志找出耗时高的SQL
2. EXPLAIN查看索引是否生效
3. 查看表索引是否生效
2)索引优化
3)check与optimize使用方法
4)常用SQL的优化
检查服务器增、删、改和查的使用频次:(本次启动以来)
通过show status命令了解各种SQL的执行频率。
格式:mysql>show [session|global] status;
其中:session(默认)表示当前连接,global表示自数据库其中至今
show status like "%Com_update%";
show status like "%Com_insert%";
show status like "%Com_select%";
show status like "%Com_delete%";
查innodb自启动以来的影响行数:
mysql> show status like "%InnoDB_rows%";
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Innodb_rows_deleted | 2 |
| Innodb_rows_inserted | 0 |
| Innodb_rows_read | 105 |
| Innodb_rows_updated | 3 |
+----------------------+-------+
定位执行效率较低的SQL语句:
查看user表索引
索引参考文档:
http://c.biancheng.net/view/7364.html
show index from user\G
让测试数据成倍增长
insert into user(name,age,score,created_at,updated_at) select name,age,score,created_at,updated_at from user;
1.explain(常用)或desc定位一条sql语句的影响行数
前提是已经查询到该sql语句花费了大量的时间,执行效率慢的情况,超过了1ms等等
explain使用查考文档:https://www.jianshu.com/p/18ab39d8dd88
mysql>explain select * from user where username='user8'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: user
partitions: NULL //
type: ALL //联合查询所使用的类型,type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是:
system > const > eq_ref > ref >fulltext > ref_or_null > index_merge > unique_subquery >index_subquery > range > index > ALL
possible_keys: NULL //这一列显示了查询可以使用哪些索引,是基于查询访问的列和使用的比较操作符来判断的.(可能用到的索引)
如果没有任何索引可以使用,就会显示成null
key: NULL //显示了MySQL决定采用哪个索引来优化对该表的访问 (真正用到的索引)
key_len: NULL //显示mysql决定使用的键长度,如果键是null,则长度为null。
ref: NULL //显示了之前的表在key列记录的索引中查询值所用到的列或常量
rows: 11 //显示的是MySQL为了找到所需的值而要读取的行数.
filtered: 10.00 //进行全文索引检索。
Extra: Using where
2.查看mysql的慢查询日志.
1)查看慢查询日志是否开启
show variables like "%quer%";
slow_query_log | ON //ON开启慢查询
slow_query_log_file | mysql-slow.log //保存所在日志
long_query_time | 10.000000 //慢查询秒数
2)查看慢查询的次数
show status like "%quer%";
Slow_queries | 0 //慢查询次数
3.修改慢查询的时间(my.ini)
long_query_time=6 //定位为6秒,记录为慢查询sql
4.重启mysql服务器
net stop mysql57
net start mysql57
优化表空间
optimize table sales;也就是把
1.myisam表没有问题.
2.innodb表ibdata1文件无法回收以删除数据表空间.
Mysql联合索引最左匹配原则
https://segmentfault.com/a/1190000015416513
内容总结
以上是互联网集市为您收集整理的MySQL优化-MySQL优化步骤、慢查询、优化表空间全部内容,希望文章能够帮你解决MySQL优化-MySQL优化步骤、慢查询、优化表空间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。