我有一个包含customer_id,customer_name,电子邮件,密码,状态等字段的客户表。
目前只有customer_id被编入索引(因为它是主键)
我几乎没有选择客户的查询
select * from customer
where status=1 and email<>''
and email is not null
and password<>''
and password is not null
由于我有130万条记录,因此运行缓慢 所以我想在电子邮件领域添加索引。 我想知道哪个索引会使简单的索引工作更好,或者我必须使用FULLTEXT索引
答案 0 :(得分:1)
FULLTEXT
索引有助于搜索列中的文字。
如果你真的只是搜索空(和非空)电子邮件和密码,那么一个简单的索引就足够了。
对于这个查询,更相关的索引是:
ALTER TABLE customer ADD INDEX (status, email, password);
[编辑]
正如Dukeling 等人正确指出的那样,如果你的大多数customers
确实有电子邮件或密码设置,这样的索引可能毫无用处。
假设上面(大多数客户确实有电子邮件和密码设置),那么您的查询会返回许多记录,并且任何索引都没什么帮助(正如nos和raina77ow所建议的那样)。
唯一可以肯定的是,FULLTEXT
索引在这种情况下是无用的。