数据库MySQL查询优化那些事儿

    作者:匿名更新于: 2022-06-20 22:20:40

      当数据库中的数据量非常多的时候,我们需要设置索引来加速检索,通过合理的设置索引,我们的查询将会得到最大程度的优化。

      量体裁衣

      平时我们在从数据库获取数据的时候,非常喜欢使用select *来获取全部数据,这样当用户想要什么数据的时候,都可以获取到,但是这会造成数据获取时间的增大,正确的做法就是需要什么字段,就写什么字段,这样才能避免资源的浪费。

      以小博大

      当我们想要从两个不一样体量的表中获取数据的时候,我们应该尽量通过小表来进行条件判断,因为它的行数更少,条件判断查询更快。

      需要注意的是,in 适合将小表放到条件里面,大表放到外面。而 exists 适合将小表放到前面,而大表放到后面,总之,就是最先通过小表进行查询过滤。

      一气呵成

      很多人喜欢在循环里面操作数据库,殊不知这是查询大忌。我们不应该在循环中进行数据库的操作,因为这会执行很多条 sql 语句,我们应该将要查询的数据通过循环进行封装,然后一次性批量地去数据库进行查询,通过一气呵成来查询。

      恰到好处

      在很多时候,我们查询数据的时候仅仅需要一条数据即可,但是很多时候我们却查询出了很多条数据。这些不必要的浪费大大增加了数据的开销,因此在查询的时候多多使用limit关键字是非常有好处的,它会大大缩短查询时间。

      大事化小

      当数据很多的时候,我们往往通过分页来解决查询数据的问题,但是当总的分页数据过多的时候,后面查询的分页速度会大大降低,这个时候我们可以通过设置查询条件来降低每次查询的条件过滤,将大事化小。

      复制

      1. select id,name,des from user limit 1000000,20;

      2. select id,name,des from user where id >1000000 limit 20;

      择善而从

      在创建数据库的时候,我们往往喜欢随意设置字段类型,而且喜欢将它设置得很大,防止以后数据的修改。其实,这是大大的错误,数据库之所以设计了不同类型的字段,就是为了让我们择善而从,选择最适合的类型。

      如果字段长度基本固定,那么最好使用 char,否则选择 varchar,如果字段数据类型可以用数字类型,那么就不要使用字符串类型,因为数字类型的效率更高。对于高精度的数据,我们应该怎么使用 decimal 类型。

      遐迩一体

      很多时候,我们习惯通过子查询来查询数据,因为这样查询理解更简单,但是,这种不是一起查询的话,会导致查询效率大大降低,过多的使用子查询和联合查询,就会导致增加查询开销,占用更多的存储空间。

      一马当先

      当数据库中的数据量非常多的时候,而一些字段又是我们经常需要查找的字段的时候,我们就需要选出一些关键人物,也就是我们需要设置索引来加速检索,通过合理的设置索引,我们的查询将会得到最大程度的优化。​

      来源: 今日头条

      >>>>>>点击进入数据库专题

数据库 更多推荐

课课家教育

未登录