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

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

量体裁衣

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

sql查询优化那些事儿

以小博大

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

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

一气呵成

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

恰到好处

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

sql查询优化那些事儿

大事化小

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

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

择善而从

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

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

遐迩一体

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

一马当先

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

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2013-01-04 10:00:12

MySQL数据库数据库查询优化

2021-04-29 10:30:58

MySQL数据迁移

2011-03-31 10:28:14

中小企业数据库选型

2022-04-13 10:03:59

性能优化性能分析工具JVM

2022-04-08 09:47:55

性能优化开发

2022-02-18 19:24:15

性能优化代码

2010-04-09 15:08:17

Oracle 数据库性

2010-08-26 14:39:54

Infobright数

2022-02-08 17:39:04

MySQL服务器存储

2011-03-03 17:56:52

MySQL数据库优化

2021-07-09 13:58:16

MySQL数据库运维

2010-05-20 18:12:37

MySQL数据库查询

2011-03-08 08:49:55

MySQL优化单机

2011-05-19 10:29:40

数据库查询

2021-01-31 17:50:41

数据库查询程序员

2023-07-12 08:55:16

PawSQL数据库

2010-06-10 10:15:50

MySQL数据库查询

2010-05-13 10:47:44

MySQL数据库查询

2009-07-06 21:20:34

SQL Server数

2009-05-15 10:11:55

数据库查询查询性能分页浏览
点赞
收藏

51CTO技术栈公众号