以小博大
当我们想要从两个不一样体量的表中获取数据的时候,我们应该尽量通过小表来进行条件判断,因为它的行数更少,条件判断查询更快。
需要注意的是,in 适合将小表放到条件里面,大表放到外面。而 exists 适合将小表放到前面,而大表放到后面,总之,就是最先通过小表进行查询过滤。
一气呵成
很多人喜欢在循环里面操作数据库,殊不知这是查询大忌。我们不应该在循环中进行数据库的操作,因为这会执行很多条 sql 语句,我们应该将要查询的数据通过循环进行封装,然后一次性批量地去数据库进行查询,通过一气呵成来查询。
恰到好处
在很多时候,我们查询数据的时候仅仅需要一条数据即可,但是很多时候我们却查询出了很多条数据。这些不必要的浪费大大增加了数据的开销,因此在查询的时候多多使用limit关键字是非常有好处的,它会大大缩短查询时间。
大事化小
当数据很多的时候,我们往往通过分页来解决查询数据的问题,但是当总的分页数据过多的时候,后面查询的分页速度会大大降低,这个时候我们可以通过设置查询条件来降低每次查询的条件过滤,将大事化小。
select id,name,des from user limit 1000000,20;
select id,name,des from user where id >1000000 limit 20;
择善而从
在创建数据库的时候,我们往往喜欢随意设置字段类型,而且喜欢将它设置得很大,防止以后数据的修改。其实,这是大大的错误,数据库之所以设计了不同类型的字段,就是为了让我们择善而从,选择最适合的类型。
如果字段长度基本固定,那么最好使用 char,否则选择 varchar,如果字段数据类型可以用数字类型,那么就不要使用字符串类型,因为数字类型的效率更高。对于高精度的数据,我们应该怎么使用 decimal 类型。
遐迩一体
很多时候,我们习惯通过子查询来查询数据,因为这样查询理解更简单,但是,这种不是一起查询的话,会导致查询效率大大降低,过多的使用子查询和联合查询,就会导致增加查询开销,占用更多的存储空间。
一马当先
当数据库中的数据量非常多的时候,而一些字段又是我们经常需要查找的字段的时候,我们就需要选出一些关键人物,也就是我们需要设置索引来加速检索,通过合理的设置索引,我们的查询将会得到最大程度的优化。