【问题标题】:MySQL index sign of decimalMySQL 十进制索引符号
【发布时间】:2011-01-22 22:12:06
【问题描述】:

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

我有一个条件为where amount > 0 的查询(反之亦然),我想知道是否有一种奇特的方法可以加快速度。就像索引字符串的第一个字符可以加快select distinct left(some_string_column, 1) 之类的查询一样。

【问题讨论】:

    标签: mysql


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2018-08-04
      • 2017-12-16
      • 1970-01-01
      • 2015-12-26
      • 2013-05-28
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 2016-04-09
      相关资源
      最近更新 更多