假设我有下表有80亿列: 主题文本,谓词文本,对象文本 现在我想创建另一个表来计算不同的文本值,如下所示:
CREATE TABLE Nodes (id BIGINT UNSIGNED PRIMARY KEY AUTO INCREMENT, val TEXT, count BIGINT UNSIGNED);
INSERT INTO Nodes(val,count)
SELECT Subject, COUNT(*) as count FROM Triples GROUP BY Subject
主题谓词和对象的索引会增加还是降低插入的速度?
答案 0 :(得分:2)
非常一般的经验法则:索引通常降低写入速度,而提高读取速度。
答案 1 :(得分:0)
它会降低速度,因为每个插入表都会被重新编入索引,而索引的行数也会增加...通常如果我要插入大量记录,我会掉线插入运行之前的所有索引,然后在结束时重新创建它们......
答案 2 :(得分:0)
但是没有要写的索引。
澄清一下:我在考虑添加这样的索引:
ALTER TABLE Triples ADD INDEX (Subject(767)), ADD INDEX (Predicate(767)), ADD INDEX (Object(767))
这样INSERT语句的读操作就会更快(GROUP BY等)。
问题是,如果计算索引是值得的,而不是在INSERT操作中允许全文匹配。