2.4 最终结果

当数据量为1亿1千万条左右时,如图2-6所示。另外,单表亿级数据量在硬盘中约占用5.4GB。因为表结构不同、数据量不同,所以不同的表对硬盘的占用情况也不同,此值只能作为参考。

图2-6

通过SQL语句在无索引、单线程、无判断、无跨表,且单核CPU、1GB内存的情况下,获取当前表结构亿级表中的10条,所需时间约为0.061s。在优化SQL查询与表结构的过程中,可以把此值作为参考参数对SQL进行优化。

在实际工作中,可以用8核CPU、16GB内存、当前表结构和实际工作中的SQL并发数查询SQL,以得到最快响应时间,根据此响应时间长短进行优化。要么修改表结构,修改SQL优化索引,要么修改代码减少查询次数,或者查看网络带宽是否到达上限。

若在实际工作中无法完成网络带宽受限的测试,那么就把代码中的响应时间与SQL响应时间进行对比。如果SQL响应速度更快,则优化代码与网络。如果SQL响应速度较慢,则优化索引。如果无法优化索引,就修改表结构。

图2-7与图2-8分别展示了空表和亿级数据下,两种不同的磁盘使用(根据表结构与存储内容的不同,此数值仅作为参考)。

图2-7

图2-8