关于mysql大数据分页的一些方法。

标签: mysql 大数据 分页 | 发表时间:2014-12-03 06:25 | 作者:CJaver
出处:http://blog.csdn.net

select * from user  limit 0,10;   这种最普通的方法在数据量不大的时候是没问题的

当数据量大于100W的时候 ,就要 select * from user limit 1000000,10 ;  此时数据库

要先扫过前面的100W条记录,再来取10条,所以当数据量越来越大的时候,速度也会越来越慢。


解决方案:

1、从业务上解决,限制最多只能取前70页或者前三十页的数据。例如 百度 、谷歌搜索。。

2、使用 select * from user where id > 1000000 limit 10 ; 

       此时使用了索引,所以比较快,不足的时候,使用这种方法必须保证数据的完整性,即前面的数据不能

被删除过 。

假如你要删除前面的数据,又还想使用这种方法的话,只能对数据进行逻辑删除,例如加个is_del字段

3、 select id from user limit 1000000 ,10 ; 

先查询出id,使用了索引所以快,然后在从id里面取得对应的数据。

      可使用                          select id,name from user inner join (select id from user limit 1000000 ,10 ;)    as tem on tmp.id = user.id;



作者:CJaver 发表于2014-12-2 22:25:33 原文链接
阅读:62 评论:0 查看评论

相关 [mysql 大数据 分页] 推荐:

关于mysql大数据分页的一些方法。

- - CSDN博客编程语言推荐文章
select * from user  limit 0,10;   这种最普通的方法在数据量不大的时候是没问题的. 当数据量大于100W的时候 ,就要 select * from user limit 1000000,10 ;  此时数据库. 要先扫过前面的100W条记录,再来取10条,所以当数据量越来越大的时候,速度也会越来越慢.

MySQL大数据下Limit使用

- - CSDN博客推荐文章
对于一直用Oracle的我,今天可是非常诧异,MySQL中同一个函数在不同数量级上的性能居然差距如此之大. 先看表ibmng(id,title,info)  唯一  id key 索引title. 很多人都会认为不会有多大差别,但是他们都错了,差别太大了,(可能机器不同有点差距,但绝对10倍以上)具体执行时间留给好奇的同学.

Mysql 大数据操作状态查询

- - SegmentFault 最新的文章
这种时候我们就应该祭出一些方法了,在这里我总结一下我查到的资料. 在mysql中执行这个语句后,就能显示出mysql正在执行和处理哪些语句,以及相应的其他信息. Id: 40 User: root Host: localhost db: dbname Command: Query Time: 2061 State: Sending data Info: insert into table t1(*) select * from t2.

MySQL 优化Limit分页

- - CSDN博客数据库推荐文章
     很多时候、我们需要选择出从指定位置开始的指定行数、此时、limit笑了.      对于limit的定义是:.      表示从第x行开始选择y条记录.      在业务需要分页操作的时候、我们通常采用limit+order by这对洗剪吹组合、高端洋气上档次.      然而、当翻到非常靠后的页面时、MySQL需要花费大量的时间来扫描需要丢弃的数据.

oracle、mysql和sqlserver分页

- - Oracle - 数据库 - ITeye博客
sql server row number分页:. mysql limit分页:. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

大数据分页方案

- - IT瘾-tuicool
软件开发中,常用要用到分页、计算总数,数据量超过千万、上亿的时候,往往 count的需要超过 1s 的执行时间,甚至 3-5s,对于一个追求性能的前沿团队来说,这个不能忍啊. mysql 会对所有符合的条件做一次扫描. 如果 a=%d 的数据有 1000W 条,那么数据库就会扫描一次 1000W 条数据库.

MySQL开发之分页优化

- - 数据库 - ITeye博客
一般刚开始学MySQL的时候,针对小数据量可以这样写. 但在数据量达到百万级的时候,上面这种写法会很慢,常见的优化方法是这样:. 速度提升到0.x秒了,看样子还行了可是,还不是完美的. 如果能够利用BETWEEN 子句,以下才是完美的,速度可以提升5倍. 对于大型系统,要慎用那种连sql语句都看不到的框架.

MySQL大数据量主库如何部署从库

- - OurMySQL
我们在部署MySQL Replication从库时,通常是一开始就做好一个从库,然后随着业务的变化,数据也逐渐复制到从服务器. 但是,如果我们想对一个已经上线较久,有这大数据量的数据库部署复制从库时,应该怎么处理比较合适呢. 本文以我近期所做Zabbix数据库部署MySQL Replication从库为例,向大家呈现一种新的复制部署方式.

MySQL数据库如何解决大数据量存储问题

- - 数据库 - ITeye博客
利用MySQL数据库如何解决大数据量存储问题. 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存储大数据量的问题,主要是数据库中的两张历史数据表,一张模拟量历史数据和一张开关量历史数据表,这两张表字段设计的很简单(OrderNo,Value,DataTime). 基本上每张表每天可以增加几千万条数据,我想问如何存储数据才能不影响检索速度呢.

30个MySQL千万级大数据SQL查询优化技巧详解

- - IT瘾-tuicool
本文总结了30个mysql千万级大数据SQL查询优化技巧,特别适合大. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=0.