varchar应给设置一个合适的长度而不是给一个很大的长度,因为MySQL建立索引时一般会默认使用的该字段的长度,占用存储空间且降低性能,另外,所有列总长度被限制为65,535字节。
text、blob字段应该从频繁查询的表中分离出去,因为text、blob之类的长列会完全被MySQL保存在一个单独的数据页里面里,查询效率低。
MySQL中,辨别度低的字段不应该建立索引,比如只有0和1的字段。
避免使用*进行查询可提高查询效率,应该只查找所需字段。
查询列表时应该加上limit关键词。
尽量避免join操作,即使无法避免,也不应该超过三张表。
给整型字段设置长度并无意义,int(1)与int(11)通常情况下没有任何区别。
在where和order by子句中使用有索引的列,并遵循最左前缀原则。
为每张表都设置一个id做为其主键,最好也设置AUTO_INCREMENT标志。
不要轻易使用查询缓存,特别是写密集型应用,缓存失效会占用大量的系统资源。
最后,最最最最重要的,经常备份数据,并监控数据的增长。
文章出自:https://www.toutiao.com/a6485258623311151630/