mysql优化的一些建议
1.为查询缓存优化查询
当很多相同的查询语句被执行了多次的时候,这些查询结果会被放到一个缓存中
2.善用EXPLAIN
3.若已确定只查询一条数据,加上LIMIT 1
特定场景 查找是否存在 SELECT 1
4.建索引
5.join的字段
应建索引,且最好是相同的类型
6.千万不要 ORDER BY RAND()
7.避免SELECT *
8.永远为每张表设置一个id
9.尽量使用ENUM而不是VARCHAR
10.从PROCEDURE ANALYSE() 获取建议
11.尽可能地使用NOT NULL
注意 a.不要以为NULL不需要空间
b注意.EMPTY和NULL的区别
12.Prepared Statements
13.无缓冲的查询
14.把IP地址存成INT
注 php long2ip 和 ip2long
15.固定长度的表会更快
如果表中的所有字段都是固定长度的,整个表会被认为是static或者fiexd-length
例如表中没有如下字段
VARCHAR TEXT BLOB
性能提升:搜索得会快一些,因为是固定长度的,下一条数据的偏移量比较好计算,否则需要找到主键
并且更容易缓存和重建
副作用:会浪费一些空间
16.垂直分割
更新会导致查询缓存被清空
不要经常性地去join
17.拆分大的DELETE或INSERT
18.越小的列会越快
19.选择正确的存储引擎
innoDB 和 MyISAM
MyISAM适合一些需要大量查询的应用
innoDB写操作比较多的时候会更优秀
20.使用一个对象关系映射器
Object Relational Mpper
Lazy Loading
DRM Doctrine
21.小心永久连接
还没有评论,来说两句吧...