The size or datatype of the column is irrelevant. It is the unique values that matter. If you only have 7 unique values that means 14.286% of the rows have to be considered. Instead of giving the MySQL Query Optimizer the stress of figuring out that out, you should partitioning the table by hash: CREATE TABLE mytable ( id INT NOT NULL AUTO_INCREMENT, ... ... myenum INT NOT NULL, PRIMARY KEY (id) ) PARTITION BY HASH( myenum ) PARTITIONS 7; No need to have the myenum in any indexes. Leave it to the MySQL Query Optimizer to search the correct partition should any SELECT query have a `WHERE` clause that includes `AND myenum = ...`. If you ever have to increase the number of unique values, you will have to increase the number of partitions. #Give it a Try !!!