MySQL必知必会---第30章改善性能
需要遵循的一些准则
- 从硬件入手,MySQL具有特定的硬件建议
- 一般来说,关键的生产DBMS应该运行在自己的专用服务器上
- 默认配置开始是很好的,但是过段时间后,可能自己需要调整
(查看当前设置,用SHOW VARIABLES;和SHOW STATUES;.) - MySQL一个多用户多线程的DBMS,如果在任务中某一个执行的缓慢,则所有请求都执行缓慢。如果遇到显著性能不良 可以使用SHOW PROCESSLIST 显示所有活动进程(以及他们的线程ID和执行时间。)
还可以使用KILL命令终结某一个特性的进程(需要管理员登陆) - 总有不止一种方法编写同一条SELECT语句,实验出最佳的一条。
6 .使用EXPLAIN语句让MySQL解释它如何执行一条SELECT语句; - 一般来说,存储过程执行的比一条条地执行其中的各条语句要快。
- 要用正确的数据类型
- 决不要检索比需求还多的东西。
- !!!有的操作(包括INSERT)支持一个可选的DELAYED关键字,如果使用它,将把控制立即返回给调用程序,一旦有可能就执行该操作
- 导入数据时,关闭自动提交。你看你还想删除索引,然后再导入完成后再重建他们。
- !!!必须索引数据库表以改善数据检索的性能。确定索引什么不是一件微不足道的任务,需要分析使用的SELECT语句以找出重复的WHERE和ORDER BY子句。如果一个简单的WHERE子句返回结果所花的时间太长,则可以断定其中使用的列(或几个列) 就需要索引的对象。
-
如果有太多OR条件,通过多条SELECT语句和连接它们的UNION语句,你能看到极大的性能改进。
-
索引改善数据检索的性能,但是损害数据插入、删除、更新的性能。
-
LIKE很慢,一般来说,最好用 FULLTEXT而不是LIKE
-
数据库是不断变化的实体。优化和配置会随着变化而改变标准
-
最重要的规则,每条规则在某些条件下都会被打破。