- in操作在很多时候是可以优化查询的,但是当有order by或者其他需要遍历所有结果的语句时需要注意,如果in的内容比较多,应该分批查,例如
select * from table where name in (?) and type in (1,2,3) order by id desc limit 10
,如果要查的name很多,数据库会查出所有结果再排序, 解决办法:把name分成若干堆,多个协程并行查询,在内存中聚合结果 - 注意索引是否能触发,最好explain检查一下
- 尽量减少数据库的查询次数,因为时间上和数据库通信的成本一般都会高于内存,而且可以减轻数据库的压力
- 索引只会保存索引字段和主键的值,所以如果没必要就不要查询多余的字段
- 数据库的写操作会把表hang住,不应该有大批量的写,不能建立复杂的索引
- 能预编译尽量预编译,一方面是速度有缓存 ,一方面是安全防注入
后端开发SQL注意事项
最新推荐文章于 2024-07-07 00:20:28 发布