MySql:使用TEXT列查找空记录非常慢

时间:2014-10-16 14:39:06

标签: mysql

我有一个表格,其中包含MEDIUMTEXT类型的列。此表中有大约150,000条记录。

我正在尝试查找此字段为空的记录:

SELECT * FROM `q_tasks` WHERE `html`!='' limit 100

html具有MEDIUMTEXT类型,并且字符串的长度超过200 KB。

非常慢。我考虑过为这个专栏添加一个索引,但它会起作用吗?我可以尝试,但我有点害怕添加索引这类列实际意味着什么。我的意思是我在DATETIME列中添加了一个索引(在同一个表中),花了很长时间并在我的磁盘上占用了大约3GB。我现在只剩下~10 GB的可用空间:(

所以我有两个问题,是否会增加索引提高速度?这个索引会占用我的磁盘多少千兆字节(大约)?

1 个答案:

答案 0 :(得分:0)

恕我直言,最好的选择是在这个列上允许NULL值,然后使用这样的where子句:

SELECT * 
FROM q_tasks 
WHERE html IS NOT NULL 
LIMIT 100