大数据量情况下SQL编写经验
-------------------------------------------
1、对大表的索引查询 等于(=)最为有效,between and 次之,>= and <=最差。所以对性能数据这样有固定时间点的表,如果我们要查一段时间点的数据,最快的方式是一个时间点,一个时间点的查询最快。
删除也是同样
2、对大的目标表插入数据时,来源数据不要有表关联情况。
实践表明,插入数据时,从单个来源表插入数据比表关联后插入要快得多。
3、大表之间的关联速度非常慢,即使利用了索引,效果也不理想。
最好的办法是先将大表的数据按1中的描述,插入临时表,在临时表上建索引,然后关联,速度会快许多。直接关联在开发时往往由于表中数据不多而不会暴露问题,等表中数据大量增加后就会非常慢。
4 用表关联能得到的信息,就不要通过function去得到,SQL中使用function会占用额外的资源。