社区编辑申请
注册/登录
数据库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 类型。

遐迩一体

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

一马当先

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

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

2022-05-26 06:05:16

MySQL数据库

2022-06-26 06:32:28

MySQL数据库维护

2022-05-11 09:02:27

Python数据库Excel

2022-06-23 11:42:22

MySQL数据库

2022-06-30 10:56:18

字节云数据库存储

2022-06-15 08:21:49

Linux运维工程师

2022-05-17 11:06:44

数据库MySQL系统

2022-06-22 09:56:19

PythonMySQL数据库

2022-06-29 09:43:14

SQL优化数据库

2022-05-09 15:52:23

MySQL数据库数据库表

2022-06-20 12:00:43

MySQL数据库升级

2022-06-27 17:46:53

PythonFlask

2022-05-30 11:10:04

数据库MySQL系统

2022-06-16 09:22:28

图数据库图数据数据库

2022-06-10 07:45:09

CentOS国产操作系统

2022-06-15 16:16:21

分布式数据库鸿蒙

2022-05-11 10:43:02

美团数据库优化

2022-06-10 17:37:37

数据库

2022-03-16 14:45:18

MySQL慢查询数据库

2022-06-29 10:16:25

数据库SQL

同话题下的热门内容

一次非常有意思的 SQL 优化经历:从 30248.271s 到 0.001s解决MySQL幻读的终极指南面试突击:说一下MySQL事务隔离级别?为什么MySQL的count()方法这么慢?为什么SQL语句命中索引比不命中索引要快?面试突击:什么情况会导致 MySQL 索引失效?MySQL 索引失效的几种类型以及解决方式DBA技术分享-MySQL外键查询语句

编辑推荐

MySQL集群搭建详解如果对MySQL还停留在这个印象,就out了防止服务器宕机时MySQL数据丢失的几种方案MySQL innodb引擎备份工具XtraBackup之二(数据库全备)MySQL优化: Slave延迟很大的优化方法总结
我收藏的内容
点赞
收藏

51CTO技术栈公众号