我有一个表具有以下字段的MySQL数据库:应该索引多少个字段,我应该如何创建它们?
ID | GENDER | BIRTHYEAR | POSTCODE
用户可以搜索使用的任何字段的表中的任意组合(即SELECT * FROM table WHERE GENDER = 'M' AND POSTCODE IN (1000, 2000);
或SELECT * FROM table WHERE BIRTHYEAR = 1973;
)
从MySQL文档,它使用左侧索引。因此,如果我在所有4列上创建索引,则不使用ID字段的索引。我是否需要为字段(ID; ID/GENDER; ID/BIRTHYEAR等)的每种可能组合创建一个索引,或者为所有字段创建一个索引就足够了?
如果它有什么区别,这个表里有300万条记录。
你没有提到ORDER BY:如果使用ORDER BY ... LIMIT,使用索引来执行顺序,同时可以获得巨大的胜利。你最常见的是什么? – peufeu 2009-10-22 09:37:45