分享Mysql优化思路


本文摘自PHP中文网,作者藏色散人,侵删。

一、总体优化思路

首先构建脚本观察查询数,连接数等数据,确定环境原因以及内部SQL执行原因,然后根据具体原因做具体处理。

推荐:《mysql视频教程》

二、构建脚本观察状态

1

mysqladmin -uroot -p  ext \G

该命令可获取当前查询数量等信息,定时轮询并将结果重定向到文本中,然后处理成图表。

三、处理对策

1.若是规律性出现查询慢,考虑缓存雪崩问题。

对于该问题只需将缓存的失效时间处理成不要相近时间同时失效,失效时间尽量离散化,或者集中到午夜失效。

2.若非规律性查询缓慢,考虑设计缺乏优化

处理方法:

a:开启profiling记录查询操作,并获取语句执行详细信息

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

show variables like '%profiling%';

set profiling=on;

select count(*) from user;

show profiles;

show profile for query 1;

>>>

+--------------------------------+----------+

| Status                         | Duration |

+--------------------------------+----------+

| starting                       | 0.000060 |

| Executing hook on transaction  | 0.000004 |

| starting                       | 0.000049 |

| checking permissions           | 0.000007 |

| Opening tables                 | 0.000192 |

| init                           | 0.000006 |

| System lock                    | 0.000009 |

| optimizing                     | 0.000005 |

| statistics                     | 0.000014 |

| preparing                      | 0.000017 |

| executing                      | 0.001111 |

| end                            | 0.000006 |

| query end                      | 0.000003 |

| waiting for handler commit     | 0.000015 |

| closing tables                 | 0.000011 |

| freeing items                  | 0.000085 |

| cleaning up                    | 0.000008 |

+--------------------------------+----------+

b:使用explain 查看语句执行情况,索引使用,扫描范围等等

阅读剩余部分

相关阅读 >>

详解用select命令在mysql执行查询操作的教程

mysql8.0.20下载安装及遇到的问题(图文详解)

mysql中的人生见证

navicat远程连接mysql连不上

mysql数据库使用node.js实现连接功能的示例

mysql外键使用详解

mysql如何插入多条数据?

mysql中最大值和最小值以及总和查询与计数查询的实例详解

mysql中or语句用法示例

通过mysql 判断点是否在指定多边形区域内

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...