性能改善出发点:
Part 1
- 建议将MySQL运行在自己专用服务器上
- MySQL的预设值可以调整: 比如内存分配, 缓冲区大小
- MySQL是一个多线程的DBMS, 经常同时执行多个任务, 可能会被其中一个执行缓慢的任务影响, 使用 SHOW PROCESSLIST 显示活动进程来分析, 使用KILL杀死进程
- SELECT语句的多种尝试: 联结, 并, 子查询等, 找出最佳方法
- 使用EXPLAIN让MySQL解释如何执行一个查询
- 存储过程执行比一条一条的执行个SQL语句快
Part 2
- 应该总是使用正确的数据类型
- 少用SELECT * : 也就是不要检索超出需求的数据
- 必须索引数据库表以改善数据检索的性能,
- 使用多条SELECT 和连接他们的UNION语句代替OR条件
- 索引改善检索数据的性能, 但是影响增删改, 如果一个表不经常被检索, 则不要索引他们
- Like很慢, 最好使用FULLTEXT
- 数据库是不断变化的, 一组优化良好的表可能一会就面目全非了, 所以理想优化也会改变