① 为查询缓存优化查询html
② EXPLAIN 咱们的SELECT查询(能够查看执行的行数)mysql
③ 当只要一行数据时使用LIMIT 1sql
④ 为搜索字段创建索引缓存
⑤ 在Join表的时候使用至关类型的列,并将其索引性能
⑥ 千万不要 ORDER BY RAND ()优化
⑦ 避免SELECT *spa
⑧ 永远为每张表设置一个ID线程
⑨ 能够使用ENUM 而不要VARCHARhtm
⑩ 尽量的使用NOT NULLblog
⑪ 固定长度的表会更快
⑫ 垂直分割
⑬ 拆分打的DELETE或INSERT语句
⑭ 越小的列会越快
⑮ 选择正确的存储引擎
⑯ 当心 "永久连接"
Explain 性能分析:
explain显示了mysql如何使用索引来处理select语句以及链接表。能够帮助选择更好的索引和写出更优化的查询语句
possible_keys:查询可能使用到的索引都会在这里列出来
key:查询真正使用到的索引,select_type为index_merge时,这里可能出现两个以上的索引,其余的select_type这里只会出现一个。
参考:http://www.javashuo.com/article/p-xnalqwrc-ho.html
show processlist命令:
show processlist和show full processlist
processlist命令的输出结果显示了有哪些线程在运行,不只能够查看当前全部的链接数,还能够查看当前的链接状态帮助识别出有问题的查询语句等。
若是是root账号,能看到全部用户的当前链接。若是是其余普通账号,则只能看到本身占用的链接。showprocesslist只能列出当前100条。若是想所有列出,能够使用SHOW FULL PROCESSLIST命令
show processlist
KILL thread_id语句终止一个线程
再show processlist