数据库的索引,书上说:当数据量超大的时候,B-Tree索引就无法起作用了,如何理解? 数据库,B-Tree索引,索引 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 《高性能mysql》中文版第三版,262页-263页,讲分区表的时候说的。说这个时候用分区表时一种不错的方法,等效于粗粒度的索引。 问两个问题:关于B -Tree索引的。1:当数据量超大的时候,B-Tree索引就无法起作用了。2:如果数据量巨大,将产生大量随机I/O,同时数据库的响应时间将大到不可接受的程度。如何理解上面两个问题1)数据量超大的时候,B-TREE的树深度会变深,从根节点到叶子节点要经过的IO次数也会增大。当IO层数超过4层之后,就会变得很慢,其实4层IO,存储的数据都是TB级别的了,除非你的数据类型都是INT等小类型的。也不能说BTREE不起作用,只是说作用没那么明显了。2)数据量巨大,就一定是随机IO吗?这不一定的,如果都是主键查询,10E条记录都可以很快返回结果。当用二级索引来查询的时候,就变成随机IO了,响应时间是会变慢,这也要看数据的分布。另外他也没说存储介质,如果用SSD盘,随机IO比SAS的强100倍,性能也是不错的 mysql 建立视图的问题 如何优化下面的sql 在mysql中出现的warnings!! MYSQL可不可以让某条记录不可以修改? 存储过程列合并(postgres) 如何在mysql中插入大批量的数据? MySQL5.0.4版本,密码忘了如何重设? mysql 视图中有 union all 的效率问题 请教SQL语句 hql 查询问题,问题如下 mysql 循环游标老是多一行 mysql workbench 停止工作
说这个时候用分区表时一种不错的方法,等效于粗粒度的索引。
1:当数据量超大的时候,B-Tree索引就无法起作用了。
2:如果数据量巨大,将产生大量随机I/O,同时数据库的响应时间将大到不可接受的程度。
如何理解上面两个问题1)数据量超大的时候,B-TREE的树深度会变深,从根节点到叶子节点要经过的IO次数也会增大。当IO层数超过4层之后,就会变得很慢,其实4层IO,存储的数据都是TB级别的了,除非你的数据类型都是INT等小类型的。也不能说BTREE不起作用,只是说作用没那么明显了。2)数据量巨大,就一定是随机IO吗?这不一定的,如果都是主键查询,10E条记录都可以很快返回结果。当用二级索引来查询的时候,就变成随机IO了,响应时间是会变慢,这也要看数据的分布。另外他也没说存储介质,如果用SSD盘,随机IO比SAS的强100倍,性能也是不错的