给出下表
name: my_name: 01, your_name: 02
id: my_id: 01: your_id: 02
# Here is an equivalent row store sql query
SELECT p.id FROM personal_info as p WHERE p.name = my_name
查找是什么样的?它是否对名称进行O(1)检查,然后在id中扫描整个列?如果是这样,扫描是O(n)扫描还是O(logn)扫描?性能与行存储扫描有何不同?
答案 0 :(得分:1)
扫描的复杂性取决于您的数据库索引类型。
如果索引是哈希类型,则扫描为O(1);
如果索引是B树(或B +,B-epsilon),则扫描复杂度为O(log N)。
如果此列上没有索引,则扫描必须执行另一行,复杂度为O(N)。
考虑到随机磁盘访问速度慢,哈希索引是最佳选择。