一、数据库设计方面

1>设计数据库的时候总要设计一些冗余字段,因为在一些查询中,容易字段可以帮助我们不需要去联表查询,例如:评论数量、最后登录时间、登录次数等

2>设置删除状态字段

尽量少用delete语句,这个语句在操作的时候会锁表,用update
3>字段上面不要null做默认值

4>做合理的索引,大量的索引只会insert变慢

5>类型字段建议用tinyint,例如(城市、类型)

6>varchar内存占用率小,char效率高(固定大小的字符串建议用这个)

7>mysql和redis结合——高效(对一些经常不动的数据进行缓存处理)


二、数据库语句方面

1>select语句尽量写字段,不要用*

2>查询数量的时候,尽量使用count(1)

3>查询一条语句时候最好在后面加上limit 1

4>快速插入:insert into t_user(name) values('a'),('b')效率会高

5>如果能用inner join 尽量使用

6>查询时尽量用not null,不要使用null这样会导致数据库不去用索引,会全表扫描

7>where字句中避免使用!=或<>,会放弃索引,扫描全表

8>避免or,如果一个字段有索引,另一个没有,同样会扫描全表——union all代替

9>避免使用in和not in,用between and来代替,exists代替in

10>like优化


参考链接:https://www.zhihu.com/question/52718330?sort=created