向数据库中插入了4000W数据,然后用多线程去查询数据,统计时间如下:
当数据量为4000W时,查询速度如图所示
当数据量为3000W时,查询速度如图所示
当数据量为2000W时,查询速度如图所示
当数据量为1000W时,查询速度如图所示
由此可见数据查询速度和数据量是有关系的,当数据量足够大时,查询时间会相应延长(4000W的时候电脑一度卡的一批哈哈),而当数据量减少到一定量范围内时,查询速度几乎保持在一个水平,这说明此时查询已经达到了最优水平,这是我们最期望看到的数据量大小。
至于为什么数据量越大查询速度越慢呢,这是因为内存不足。当单表过大时,我们需要进行分表,否则在多线程下容易产生内存不足的情况,一般情况下500W数据量左右进行分表。
在有索引的情况下,mysql是将索引全部加入内存再匹配,导致分批次与磁盘进行交互,当我们一次性删除百万条数据时可能会响应很长时间,这时一个比较简单的缩短时间的方法是将百万条数据拆分成几十万来进行多次删除。
mysql数据量与速度关系
最新推荐文章于 2022-11-26 16:50:37 发布