MySQL --version 是 5.7.18
什么是优化查询的正确方法,例如:
select id,name from mytable where a - b > 0
mytable 是这样的
id
- 主键,增量,大整数名称
- varchar(255)a
- 整数,无符号,10b
- 整数,无符号,10
将索引添加到 a
和 b
列有帮助吗?我应该只添加第三列 a_minus_b
,为其编制索引,然后每次都小心地正确更新它,还是有更好的方法?
最佳答案
您可以使用生成的列,然后在该列上使用索引:
alter table mytable add column abdiff int generated always as (a - b);
create index idx_mytable_abdiff on mytable(abdiff);
注意:这使用 int
作为类型。您可以指定您喜欢的不同类型。
关于MYSQL正确的索引计算方法where条件(where a Table.a > Table.b),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379531/