sql方面:
- 尽量减少sql语句的嵌套查询,因为会和数据库进行多次交互
- 尽量避免select * from table,查询具体的字段
- 在数据库中where条件筛选尽量往前移,会定位更准确
- 对常用的查询字段建立索引,提高查询效率
- 应绝对避免在order by和where子句中使用表达式
- 应尽量避免在 where子句中使用or,and,in,not in来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,合理使用union all
select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20
存储方面:
- 如果固定长度的存储就使用char类型,可变长度的使用varchar,char比varchar处理效率高
- 选择更小的数据类型。能用TinyInt不用Int。
MySql的存储引擎:
- InnoDB:使用最广泛的存储引擎,被用来处理大量的短期事务,具有高性能和自动崩溃恢复的特性;
- MyISAM:不支持事务和行级锁,崩溃后无法安全恢复。