日期:2014-05-16  浏览次数:20445 次

百万以上数据时数据库的检索


当数据库中数据很少时,基本不用考虑速度问题。

但是当数据量到了百万条的级别时,速度就很成问题了。


本人初学者,有以下经验。

方法一:

在要检索的列上添加索引,例如用mysql时主键是自动有索引的,非主键也可以加索引。

对于没有在检索列上设索引和在检索列上设索引的速度,我的测试结果是当数据库用有500000的数据时,检索速度提高了100倍。

插入的速度不大受数据量的影响。

索引的具体原理还不是很清楚,但是有一点是知道的,就是建立索引以后避免了扫描整个数据库进行检索。

可以想象加入了一些类似折半查找等方法。


方法二:

对于本机操作,而且不是很频繁的检索时,

把所有数据用select * from table 的方式放到变量里,也就是内存里,速度也是很快的。

对于数据不是太长的表,比如每行有30个字符,百万条的全表读取也就不到半分钟,

到了内存以后就可以很快速地处理了。

用带有hash表功能的容器,检索还是非常快的。



3楼xuchao12293天前 09:44
个人理解索引类似于书本的目录
2楼liuyong08183天前 04:39
索引就是排好序的记录,一般是B树结构
1楼georgelife73天前 18:05
看到很多网页上也说类似于目录,但是个人理解在查这个目录的时候也应该不是逐条检索的,而是跳跃式的。不然速度仍然会很慢。索引应该是一个附加的结构,里面有类似目录的内容,在这个目录上同时支持非遍历搜索的快速检索。n没有参考资料依据,个人理解。