MySQL--大数据量的分页优化方案

原文网址:MySQL--大数据量的分页优化方案_IT利刃出鞘的博客-CSDN博客

简介

本文介绍如何优化MySQL的大表的分页查询。

问题描述

在分页查询时,分页页数越大,查询速度越慢。

比如:测试起始页不断增加查看SQL的执行时间:

mysql> SELECT * FROM `t_user` LIMIT 10000,10 ;
mysql> SELECT * FROM `t_user` LIMIT 100000,10 ;
mysql> SELECT * FROM `t_user` LIMIT 1000000,10 ;
mysql> SELECT * FROM `t_user` LIMIT 5000000,10 ;

结果:

mysql> SHOW PROFILES;
+----------+-------------+-------------------------------------+
| Query_ID | Duration    | Query                               |
+----------+-------------+-------------------------------------+
|       1 |  0.00861825 | SELECT * FROM `t_user` LIMIT 10000,10   |
|       2 |  0.68741175 | SELECT * FROM `t_user` LIMIT 100000,10  |
|       3 |  5.62566875 | SELECT * FROM `t_user` LIMIT 1000000,10 |
|       4 | 18.33333200 | SELECT * FROM `t_user` LIMIT 5000000,10 |
+----------+-------------+-------------------------------------+

 可以看到,随着起始位置的增加,查询时间也不断增加。

原因分析

查询流程概述

假设查询第1000000页数据,每页10条,则分页查询的语句是:

SELECT * FROM `t_user` WHERE `name` = 'Tony' LIMIT 1000000,10。

本次测试,上述SQL的执行结果为:57.463s。 

MySQL对上述的SQL的处理流程为:先排序,然后取出1000010条数据,然后舍去前100000条数据,返回10条数据。

上边只是部分内容,为便于维护,本文已迁移到此地址:MySQL-大数据量的分页优化方案 - 自学精灵

当进行百万级别的进行LIKE查询时,由于LIKE操作的模糊匹配特性,会导致查询速度变慢。这是因为MySQL在进行LIKE查询时需要遍历每一条据,并逐个进行匹配,这个过程消耗了大的时间和资源。 为了优化LIKE查询的速度,可以考虑以下几个方案: 1. 使用索引:在需要进行LIKE查询的列上创建索引,可以大大提高查询速度。可以使用全文索引(Full-text index)或者前缀索引(Prefix index)来加快模糊匹配的检索速度。 2. 使用全文搜索引擎:MySQL提供了全文搜索引擎(如MyISAM引擎),可以更高效地处理模糊匹配的查询。全文搜索引擎支持更为灵活的查询语法,并具有更好的性能。 3. 分页查询:如果查询结果集很大,可以考虑使用分页查询来减少单次查询的,从而提高查询速度。通过限制每次查询的,可以减少LIKE匹配的开销,并提升查询性能。 4. 使用其他查询优化技术:可以使用其他MySQL的查询优化技术,如查询缓存、表分区、分表等,来改善数据库的性能。这些技术可以通过合理的数据库设计和查询规划,减少LIKE查询的压力。 总结起来,对于MySQL中百万级别的据进行LIKE查询,可以通过创建合适的索引,在数据库设计和查询规划上做出优化,以提高查询性能和效率。同时,可以考虑使用全文搜索引擎等更高效的工具来处理模糊匹配的查询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT利刃出鞘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值