我在Python中使用SQLite时观察到以下现象。假设有一个 var array = [1, 2, 3, 4, 5];
var str = "String";
function isArray(obj){
return obj.constructor === Array;
}
console.log("array is an Array: "+isArray(array));
console.log("str is an Array: " + isArray(str));
,其中有几列;它的主键是table
,并且没有其他索引。我想找到前5个a
,其中列a
为NULL:
b
运行此查询1000次需要0.46s。然后,我为SELECT a FROM table WHERE b ISNULL ORDER BY a ASC LIMIT 5;
添加了一个索引,但是现在运行1000次相同的查询需要3.86秒。我不明白为什么在这种情况下b
的索引实际上会使查询变慢。我想知道是否根本没有索引NULL。
我通过对b
和a
而不是仅对b
进行索引来重复了相同的实验,结果是0.25s。超过0.46s的改进似乎表明对NULL 进行了索引(但是出于某种原因,仅对b
进行索引会很麻烦)。谁能解释这个发现?
答案 0 :(得分:-1)