我的TABLE包含大约6列和大约1000万行。一列包含大约500万行,单词“ M-0”,其余500万行,单词“ M-1”。我尝试索引此列,然后删除包含单词“ M-1”的行。但是,这花费了很长时间。 有没有一种方法可以更快地做到这一点。
列的名称为“距离”。该表的代码如下:
CREATE TABLE MI_STAT_CONS_DHO (
`Event` TEXT,
`Event Description` TEXT,
`Validated` CHAR(1),
`Distance` CHAR(3),
`Supplier Hub Group` TINYTEXT,
`Special Project Flag` TINYTEXT
);
CREATE INDEX MI_STAT_CONS_DHO_DISTANCE_INDEX
ON MI_STAT_CONS_DHO (`Distance`);
DELETE FROM MI_STAT_CONS_DHO WHERE `Distance` = 'M-1';
答案 0 :(得分:2)
如果您有这么多需要删除的数据
我建议您:
或
CREATE TABLE TMP_MI_STAT_CONS_DHO
SELECT * FROM MI_STAT_CONS_DHO WHERE `Distance` = 'M-0';
TRUNCATE TABLE MI_STAT_CONS_DHO ;
INSERT INTO MI_STAT_CONS_DHO
SELECT * FROM MI_STAT_CONS_DHO;
DROP TABLE TMP_MI_STAT_CONS_DHO;