可以使用哈希表在数据库中创建索引吗?创建索引的理想数据结构是什么? 如果一个表有一个外键引用其他数据库中的一个字段,如果我们在外键上创建索引会有帮助吗?
最佳答案
Can HashTables be used to create indexes in databases?
有些 DBMS 支持基于散列的索引,有些则不支持。
What is the ideal Data structure to create indexes?
没有数据结构占用 0 字节,也不能在 0 个 CPU 周期内操作,因此没有数据结构是“理想的”。作为软件工程师,我们有责任决定哪种数据结构对我们要实现的特定目标具有最大的好处和最少的损害。
例如,B 树可用于范围扫描,而哈希索引则不是。这是否意味着 B 树“更好”?好吧,如果您需要范围扫描,它们是,但如果您不需要,则可能不一定。
If a table has has a foreign key referencing a field in other database does will it help if we create index on the foreign key?
您通常不能有指向另一个数据库的外键,只有另一个表。
是的,它往往会有所帮助,因为每次在父表中更新或删除一行时,都需要搜索子表以查看是否违反了 FK。这种搜索可以从这样的索引中受益匪浅。许多(但不是全部)DBMS 需要 FK 上的索引(如果不存在,甚至可能会自动创建它)。
OTOH,如果您只向父表添加行,您可以考虑让子表在 FK 字段上未编入索引(假设您的 DBMS 允许您这样做)。
关于database - 在数据库中创建索引的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16914733/