2011-01-22 75 views
1

有没有一种有效的方法来用MySQL(InnoDB)索引DECIMAL列的符号?MySQL十进制索引号

我有一个查询条件where amount > 0(反之亦然),我想知道是否有一种奇特的方式,使其迅速。以索引字符串的第一个字符的相同方式可以加速查询,如select distinct left(some_string_column, 1)

回答

1

将Decimal列索引将帮助MySQL返回结果,其中column > 0

CREATE INDEX signindex ON table(deccolumn); 

此外,为了让MySQL来有效地使用索引,避免where使用功能的,你可以添加一个新的列,具有预先计算的数据,索引新列

ALTER TABLE table ADD leftchar char(1); 
UPDATE table SET leftchar=left(some_string_column, 1); 
CREATE INDEX charindex ON table(leftchar); 
SELECT DISTINCT leftchar FROM table;