首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL具体解释(19)———-海量数据分页查询优化

这是一个主要新闻系统简单模型。 如今往里面填充数据,填充10万篇新闻。 最后collect 为 10万条记录,数据库占用硬盘1.6G。...10万条记录到 t(id,title,vtype) 里,数据大小20M左右。...事实这样做还是全扫描,仅仅是由于数据量小,仅仅有10万才快。OK, 来个疯狂实验,加到100万条,測试性能。加了10倍数据,立即t就到了200多M,并且是定长。还是刚才查询语句。...怪不得有人说discuz到了100万条记录就会非常。我相信这是真的,这个和数据库设计有关! 难道MySQL 无法突破100万限制吗???到了100万分页就真的到了极限?...好了,我们測试又回到 collect,開始測试结论是: 30万数据,用分法可行,超过30万他速度会道你无法忍受! 当然假设用分+我这样方法。那是绝对完美的。

1.1K30

教你几招,快速创建 MySQL 五百万级数据,愉快学习各种优化技巧

可以到 https://github.com/datacharmer/test_db 上去下载,这个数据库包含约30万条员工记录和280万个薪水条目,文件大小为 167 M。 ?...但是数据量不够大,员工才 30 万条数据,还不够百万级别,而且字段都是定义好,不能灵活定制。...订单(order)根据用户生成,每个用户随机生成 0 到 3 个订单,订单编号采用 uuid,商品数量随机 1 到 5 个,价格随机,创建时间和更新时间在某一时间段随机。...事实并不是这样,虽然比起手动一条一条插入是快多,但是,很有可能你在等待了一段时间后失去耐心,然后结束程序,不管你用哪种数据库连接池都一样,在百万数量级面前仍然离谱。...最后成功生成用户记录 500 万条,订单记录 749 万多条。 速度还算能接受吧,马马虎虎吧。

1.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL 百万级分页优化(Mysql千万级快速分页)

By:jack Mysql limit分页解决办法(Mysql limit 优化,百万至千万条记录实现快速分页) MySql 性能到底能有多高?...这是一个基本新闻系统简单模型。现在往里面填充数据,填充10万篇新闻。 最后collect 为 10万条记录,数据库占用硬盘1.6G。...vtype做了索引是不错,你直接 select id from collect where vtype=1 limit 1000,10; 是很快,基本0.05秒,可是提高90倍,从9万开始,那就是0.05...10万条记录到 t(id,title,vtype) 里,数据大小20M左右。...一张搞定100万记录,并且10G 数据库,如何快速分页! 好了,我们测试又回到 collect,开始测试结论是: 30万数据,用分法可行,超过30万他速度会道你无法忍受!

2.4K10

MySQL 百万级分页优化(Mysql千万级快速分页)

By:jack Mysql limit分页解决办法(Mysql limit 优化,百万至千万条记录实现快速分页) MySql 性能到底能有多高?...这是一个基本新闻系统简单模型。现在往里面填充数据,填充10万篇新闻。 最后collect 为 10万条记录,数据库占用硬盘1.6G。...vtype做了索引是不错,你直接 select id from collect where vtype=1 limit 1000,10; 是很快,基本0.05秒,可是提高90倍,从9万开始,那就是0.05...10万条记录到 t(id,title,vtype) 里,数据大小20M左右。...一张搞定100万记录,并且10G 数据库,如何快速分页! 好了,我们测试又回到 collect,开始测试结论是: 30万数据,用分法可行,超过30万他速度会道你无法忍受!

3.6K30

记录一次MySQL大拆分和迁移

目前该占用1.2T容量,数据量超过3亿条,而这个RDS数据库容量总共就2T,且由于种种原因无法扩容,迫不得已急需给出解决方案。 2....,把json格式压缩成字节序列,压缩后可节省5倍空间左右 2 单数据量过大,而我们业务是基本只取本年数据,该中很多不使用数据导致查询效率降低 对该按年份分,本年数据为热数据,之前数据为冷数据...3亿条,因此要保证查询效率,不然查询速度会非常。...具体做法: 每次查询1万条数据 查询时候只查询需要字段,即id字段和需要压缩字段,id字段为主键,采用主键索引 采用分页查询方式,即每次查询完记录最后一条数据id,下一次查询直接在这个id基础查询...这种方式不仅命中了索引,还避免了全扫描 2.2.2 步骤二压缩# 上面查出了1万条数据,接着要做就是批量压缩,如果采用for循环1个1个压缩,那么效率必然不是最高,可以利用go语言并发优势,把

1.3K10

记一次详细SQL查询经历,group by查询优化

一、问题背景 现网出现查询,在500万数量级情况下,单查询速度在30多秒,需要对sql进行优化,sql如下: ? 这里测试环境构造了500万条数据,模拟了这个查询。...说一下app_account字段分布情况,随机生成了5000个不同随机数,然后分布到了这500万条数据里,平均来说,每个app_account都会有1000个是重复值,种类共有5000个。...再测试电脑执行sql,依旧是30多秒。 又回本人电脑,连接同一个数据库,一执行sql,0.8秒。 同一个库,同一个sql,怎么在两台电脑执行差距这么大。 后来直接在服务器执行: ?...这里只是记录下这个问题,sqlyog执行sql速度,和服务器执行sql速度,在有的sql中差异巨大,并不可靠。...至此问题解决,其实同事昨天也在怀疑,是不是这个索引建太多了,导致用不对,原本用是idx_org_id和idx_mvno_id。 现在强制指定idx_end_time就ok了!

1.9K10

MySQL百万级数据量分页查询方法及其优化

这是一个基本新闻系统简单模型。现在往里面填充数据,填充10万篇新闻。最后collect 为 10万条记录,数据库占用硬1.6G。...vtype做了索引是不错,你直接 select id from collect where vtype=1 limit 1000,10; 是很快,基本0.05秒,可是提高90倍,从9万开始,那就是0.05...10万条记录到 t(id,title,vtype) 里,数据大小20M左右。...基本0.1-0.2秒可以跑完。为什么会这样呢?我猜想是因为collect 数据太多,所以分页要跑很长路。limit 完全和数据大小有关。...一张搞定100万记录,并且10G 数据库,如何快速分页! 好了,我们测试又回到 collect,开始测试结论是: 30万数据,用分法可行,超过30万他速度会道你无法忍受!

3.8K10

MySQL 百万级数据量分页查询方法及其优化

这是一个基本新闻系统简单模型。现在往里面填充数据,填充10万篇新闻。最后collect 为 10万条记录,数据库占用硬1.6G。...vtype做了索引是不错,你直接 select id from collect where vtype=1 limit 1000,10; 是很快,基本0.05秒,可是提高90倍,从9万开始,那就是0.05...10万条记录到 t(id,title,vtype) 里,数据大小20M左右。...基本0.1-0.2秒可以跑完。为什么会这样呢?我猜想是因为collect 数据太多,所以分页要跑很长路。limit 完全和数据大小有关。...一张搞定100万记录,并且10G 数据库,如何快速分页! 好了,我们测试又回到 collect,开始测试结论是: 30万数据,用分法可行,超过30万他速度会道你无法忍受!

3.1K00

MySQL 百万级数据量分页查询方法及其优化

这是一个基本新闻系统简单模型。现在往里面填充数据,填充10万篇新闻。最后collect 为 10万条记录,数据库占用硬1.6G。...vtype做了索引是不错,你直接 select id from collect where vtype=1 limit 1000,10; 是很快,基本0.05秒,可是提高90倍,从9万开始,那就是0.05...10万条记录到 t(id,title,vtype) 里,数据大小20M左右。...基本0.1-0.2秒可以跑完。为什么会这样呢?我猜想是因为collect 数据太多,所以分页要跑很长路。limit 完全和数据大小有关。...一张搞定100万记录,并且10G 数据库,如何快速分页! 好了,我们测试又回到 collect,开始测试结论是: 30万数据,用分法可行,超过30万他速度会道你无法忍受!

76120

分享 | MySQL百万级数据分页查询及优化

这是一个基本新闻系统简单模型。现在往里面填充数据,填充10万篇新闻。最后collect 为 10万条记录,数据库占用硬1.6G。...vtype做了索引是不错,你直接 select id from collect where vtype=1 limit 1000,10; 是很快,基本0.05秒,可是提高90倍,从9万开始,那就是0.05...10万条记录到 t(id,title,vtype) 里,数据大小20M左右。...基本0.1-0.2秒可以跑完。为什么会这样呢?我猜想是因为collect 数据太多,所以分页要跑很长路。limit 完全和数据大小有关。...一张搞定100万记录,并且10G 数据库,如何快速分页! 好了,我们测试又回到 collect,开始测试结论是: 30万数据,用分法可行,超过30万他速度会道你无法忍受!

2.2K41

MySQL 百万级数据分页查询优化

这是一个基本新闻系统简单模型。现在往里面填充数据,填充10万篇新闻。最后collect 为 10万条记录,数据库占用硬1.6G。...vtype做了索引是不错,你直接 select id from collect where vtype=1 limit 1000,10; 是很快,基本0.05秒,可是提高90倍,从9万开始,那就是0.05...10万条记录到 t(id,title,vtype) 里,数据大小20M左右。...基本0.1-0.2秒可以跑完。为什么会这样呢?我猜想是因为collect 数据太多,所以分页要跑很长路。limit 完全和数据大小有关。...一张搞定100万记录,并且10G 数据库,如何快速分页! 好了,我们测试又回到 collect,开始测试结论是: 30万数据,用分法可行,超过30万他速度会道你无法忍受!

1.9K20

记一次神奇sql查询经历,group by查询优化

一、问题背景 现网出现查询,在500万数量级情况下,单查询速度在30多秒,需要对sql进行优化,sql如下: ? 我在测试环境构造了500万条数据,模拟了这个查询。...说一下app_account字段分布情况,随机生成了5000个不同随机数,然后分布到了这500万条数据里,平均来说,每个app_account都会有1000个是重复值,种类共有5000个。...我当然是不信了,去测试电脑执行sql,还真是30多秒。。。 我又回我电脑,连接同一个数据库,一执行sql,0.8秒!? 什么情况,同一个库,同一个sql,怎么在两台电脑执行差距这么大!...后来直接在服务器执行: ? 醉了,居然还是30多秒。。。。 那看来就是我电脑问题了。 后来我用多个同事电脑实验,最后得出结论是: 是因为我用SQLyog!...这里只是记录下这个坑,sqlyog执行sql速度,和服务器执行sql速度,在有的sql中差异巨大,并不可靠。

1.1K20

记一次神奇SQL查询经历,group by查询优化

作者:dijia478 链接:https://www.cnblogs.com/dijia478 一、问题背景 现网出现查询,在500万数量级情况下,单查询速度在30多秒,需要对sql进行优化,sql...我在测试环境构造了500万条数据,模拟了这个查询。 简单来说,就是查询一定条件下,都有哪些用户。很简单sql,可以看到,查询耗时为37秒。...说一下app_account字段分布情况,随机生成了5000个不同随机数,然后分布到了这500万条数据里,平均来说,每个app_account都会有1000个是重复值,种类共有5000个。...后来直接在服务器执行: ? 醉了,居然还是30多秒。。。。 那看来就是我电脑问题了。 后来我用多个同事电脑实验,最后得出结论是: 是因为我用SQLyog!...这里只是记录下这个坑,sqlyog执行sql速度,和服务器执行sql速度,在有的sql中差异巨大,并不可靠。

1.1K20

为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统应用

随着业务迭代,这套架构不太适应妇幼业务发展需要。架构总体分为四块,自底向上分别是:数据层:源端数据源主要是 MySQL 为主关系型数据库。...按地市分割数据库不利于跨市业务服务兼容,例如,报表通常需要通过创建宽来汇总各数据库数据,这导致宽数量不断增加。此外,还存在档案重复和无法跨地市查询服务记录等问题。...架构选型数据库合并在数据库合并后,数量分布如下:超过 10 万条数据数量为 792 张,超过 100 万条数据数量为 156 张,超过 1000 万条数据数量为 58 张,以及超过 1...分析层与业务层合并简化了架构,所有业务操作现在都直接在执行,并由 TiFlash 加速。这一变化显著降低了运维成本并提升了业务扩展性。...目前某省妇幼一天两次快照 0 时、12 时,由于备份受限于存储,目前只能保留一天快照也未做日志备份。(全量快照+实时日志备份)可保证数据不丢失。

6210

group by 查询优化

一、问题背景 现网出现查询,在500万数量级情况下,单查询速度在30多秒,需要对sql进行优化,sql如下: 我在测试环境构造了500万条数据,模拟了这个查询。...说一下app_account字段分布情况,随机生成了5000个不同随机数,然后分布到了这500万条数据里,平均来说,每个app_account都会有1000个是重复值,种类共有5000个。...后来直接在服务器执行: 醉了,居然还是30多秒。。。。 那看来就是我电脑问题了。 后来我用多个同事电脑实验,最后得出结论是: 是因为我用SQLyog!...这里只是记录下这个坑,sqlyog执行sql速度,和服务器执行sql速度,在有的sql中差异巨大,并不可靠。...至此问题解决,其实同事昨天也在怀疑,是不是这个索引建太多了,导致用不对,原本用是idx_org_id和idx_mvno_id。 现在强制指定idx_end_time就ok了!

73720

线上500万数据查询时间在37秒,作者将问题解决了,我看到了更大

在这里,如果作者是在公司团队开发,我建议是,不要加强制索引,将未来又可能会暴露问题留给后面接盘的人、而假设那人按照你当前治标不治本解决方案,解决他遇到问题后,你现在遇到问题,后续可能又会出现...,单查询速度在30多秒,需要对sql进行优化,sql如下: 我在测试环境构造了500万条数据,模拟了这个查询。...说一下app_account字段分布情况,随机生成了5000个不同随机数,然后分布到了这500万条数据里,平均来说,每个app_account都会有1000个是重复值,种类共有5000个。...后来直接在服务器执行: 醉了,居然还是30多秒。。。。 那看来就是我电脑问题了。 后来我用多个同事电脑实验,最后得出结论是: 是因为我用SQLyog!...这里只是记录下这个坑,sqlyog执行sql速度,和服务器执行sql速度,在有的sql中差异巨大,并不可靠。

1.3K20

一次神奇 SQL 查询经历

来源:cnblogs.com/dijia478/p/11550902.html ---- 一、问题背景 现网出现查询,在500万数量级情况下,单查询速度在30多秒,需要对sql进行优化,sql...我在测试环境构造了500万条数据,模拟了这个查询。 简单来说,就是查询一定条件下,都有哪些用户。很简单sql,可以看到,查询耗时为37秒。...说一下app_account字段分布情况,随机生成了5000个不同随机数,然后分布到了这500万条数据里,平均来说,每个app_account都会有1000个是重复值,种类共有5000个。...后来直接在服务器执行: ? 醉了,居然还是30多秒。。。。 那看来就是我电脑问题了。 后来我用多个同事电脑实验,最后得出结论是: 是因为我用SQLyog!...这里只是记录下这个坑,sqlyog执行sql速度,和服务器执行sql速度,在有的sql中差异巨大,并不可靠。 五、后续(还未解决) 1. 所谓sqlyog查询快,命令行查询现象,已经找到原因了。

35510

SQL Server 深入解析索引存储(中)

如果堆包含超过 8,060 字节行大小限制可变长度列,则该堆每个分区还将有一个 ROW_OVERFLOW_DATA 分配单元。...堆数据页和行没有任何特定顺序,也不链接在一起。数据页之间唯一逻辑连接是记录在 IAM 页信息。...当我继续往堆表里插入数据直到超过4G时候会有新IAM页生成,而且IAM页之间存在链关系(数据页)。 ?...若heap大于4GB或包含LOB数据类型的话,则会包含多个IAM页面。 4....当查询要获取heap所有记录时,SQL Server使用IAM页来扫描heap 总结 堆页是没有规律不存在页链,所以导致堆查询效率很差,当查询一个10万条记录逻辑读取就需要10

1.3K80

SQL优化看这一篇就够了

注意几个点: BTree三层架构可以抗住1000万数据,即100条数据和1000万条数据所需要消耗IO相同。7. 7.2 B树平衡扩张 B树每一个节点都有一个固定层级大小。...小结:system是中仅仅一条记录;const是中有多条记录,其查询条件可以视作为常量值,子查询也算常量处理;eq_ref查询条件为变量,另一个中仅仅存在一条记录与之对应;ref是另一个中存在多条记录与之匹配...查询条件均为索引字段 查询字段最好使用覆盖索引,这个时候不需要查询,直接在索引中拿数据即可 10.2 索引失效 10.2.1 最佳左前缀原则 创建索引。...出现文件排序,并使用临时 ? 10.5 索引使用建议 对于单值索引,尽量选择对查询过滤最好字段。...查询日志 12.1 简介 MySQL提供一种日志记录,用来记录在MySQL中响应时间超过阙值语句,具体指运行时间操作long_query_time值SQL,会被记录查询日志中 long_query_time

83730

MySQL亿级数据数据库优化方案测试-银行交易流水记录查询

比如银行交易流水记录查询 限盐少许,实际实验过程,以下是在实验过程中做一些操作,以及踩过一些坑,我觉得坑对于读者来讲是非常有用。...总结四:条件返回数据统计量越多,速度就越慢,超过1000万就离谱,1秒左右就是100万量才行。 我们在做数据时候,都要用到分页。...分库分思维,一个大返回那么多数据,那我把它变成若干张,然后每张count(*)后,我统计累加一下,一合计,就是所有数据查询结果条数,然后就是到第多少页,我先算一下这页在哪个库,哪张,在从那张读不就完了...最后总体耗时,就是最后那个返回时间最长线程返回时间,所以理论100个线程同时启动,应该在1秒完成,但线程这玩意有快有,所以1秒多一点,也是可以接受。...场景:银行交易流水记录查询 根据小总结六特性,操作和历史查询一定要时间可以分开,由于带索引历史,插入会很慢,所以要插入到操作,操作和历史字段是一样

1.4K50
领券