如题,不知道是否可以脱离开具体数据库实现,单纯讨论一下基础理论方面的问题。
大家都知道数据库内单表比较大的话需要优化,比如使用 mysql 数据库,举例来说如果有一个五千万行的表,即使使用一个特别单纯的模型,比如每行只存自增主键 + 一个 char10 类型的数据,使用主键搜索 char10,这种情况下因为是主键,所以搜索应该不需要遍历,能直接通过索引确定位置。
但实际执行下,在未分区情况下速度也不会特别快,一般来说比如这个搜索会耗时几秒到十几秒不等的时间。这让我好奇为什么数据库搜索缓慢,其瓶颈在哪里。理论上来说不是只需要计算出位置,然后再去硬盘指定位置取出数据不就可以了么。即使硬盘很慢,读取一个随机位置的数据也不需要几秒到十几秒不等吧。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.