如果数据库最多可以支持数百万条记录,那么这些数据是如何组织的?这样可以在合理的时间内执行查询。数据库如何高效?
数据库如何高效?
回答
我真的很喜欢This说明(包括图形)
这是artcicle结论:
结论
Index example http://mattfleming.com/files/images/example.gif
创建B树索引以减少 查找所需的I/O量并加载一组数据。高度选择性的指数使用最少量的I/O ,选择性差的指数 并不比表扫描好得多。
完整的回答是许多书籍和论文;-)话题
但是,基本的答案是,所有现代RDBMS有几个特点:一是 ,他们有一个查询优化器是非常有效。这找到了回答所提供查询的好(不总是最好的)路径。当然,这实际上可以做更多的事情来帮助复杂的问题而不是简单的问题。
其次,它们以易于搜索的结构化格式存储数据。没有聚集索引的数据称为堆,这对搜索通常不太有效,但它仍然是结构化数据。数据通常会有一个聚集索引,从逻辑上对数据进行排序。 (有些人认为它在物理上对数据进行了排序,这里有一些事实,但并不完全正确,Itzik Ben Gan在其他人的文章中有一篇很好的文章揭穿了这种信念)。
除了聚簇索引,通常使用非聚簇索引。这些就像书中的索引,可以帮助告诉查询优化器在哪里查找所请求的数据,或者在某些特定情况下索引本身可能具有所需的所有数据。
这当然是一个严重和可怕的过分简单化。如果你想深入理解,准备在数据库理论中追求博士学位。对于一般级别的理解,您可以查看有关数据库内部的书籍。特别是对于SQL Server,SQL Server 2008内部包含有关此主题的大量信息。
我有兴趣阅读第二个(第三个?)段落中引用的文章 – RCIX 2010-04-30 00:03:33
看看SQL Server Magazine InstantDoc ID#92886 – TimothyAWiseman 2010-04-30 17:26:25
- 1. 高效数据库查找
- 2. Drupal数据库结构 - 高效/低效?
- 3. 高效的MongoDB数据库结构
- 4. 高效检索的数据库设计
- 5. 高效的数据库搜索LIKE'%something%'
- 6. 高效读写mysql数据库
- 7. SQL数据库的高效设计
- 8. 高效的MySQL数据库结构
- 9. 数据库的设计是否高效?
- 10. 高效的MongoDB数据库设计
- 11. 高效查询MSSQL数据库
- 12. 内存/高效数据库条目
- 13. 高效地处理数据库连接
- 14. 高效的MySQL数据库设计
- 15. 高效的数据库查询轨道
- 16. 如何高效地在SQL数据库中记录版本号
- 17. 如何提高SQLite数据库的搜索效率?
- 18. 如何高效地编写xml数据库文件?
- 19. 大型MySQL数据库如何变得高效?
- 20. 如何在Android上多次高效地查询sqlite数据库
- 21. 如何使使用PDO的数据库查询更高效?
- 22. 角度:如何检索数据高效
- 23. 如何高效地修剪数据
- 24. 如何在android sqlite数据库中使用ormlite高效插入批量数据
- 25. 如何高效地使用c#在数据库中写入数据?
- 26. C#数据收集v数据库查找 - 哪个更高效?
- 27. 新数据与大型数据库记录的高效比较
- 28. 高效地将数据结构添加到数据库
- 29. 从PostgreSQL数据库高效地检索大型数据对象
- 30. 用于高效搜索表格数据的数据库技术?
断开链接,括号错位 – kibibu 2010-04-29 23:47:33