MariaDb SQL查询性能 注意事项
where、on和order by指定的字段要有索引
复杂计算的结果应在生成后写入 而不是每次读取时计算,除非写的成本大于读
除了分页以外 避免出现count(*)的情况 count数据用一个count字段在写入时累加 判断是否存在使用有短路机制的exists()函数。
避免出现使用sum()的情况,应建立单独的表和字段写入时更新累加的相应结果。
任何情况下都应该避免使用not in(),应使用in()、exists()、not exists()和union查询代替。
in()当中不能包含SQL查询,如果需要包含查询则用exists()函数和等价的条件代替。
任何情况下都应该避免使用外连查询,应使用内连查询+多条SQL查询代替。