关于mysql无法创建函数索引之蛋疼事情,具体如下:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql无法创建函数索引之蛋疼事情,具体如下:相关的知识,希望对你有一定的参考价值。
首先,我是新手。
mysql:
select pd
from aaa
where substring(taskname,1,10)='asqazs1112';
aaa表有3千万条记录。虽然我在taskname上加了索引,但是我用explain看了下,结果是全表扫描。显然加了函数不走索引了,现在的问题是,除了我在表中加一个字段来存放substring(taskname,1,10)以外,还有没有其他可以优化的方法,,毕竟加个字段都要很久很久时间,求高人指教,谢谢!
为何要将字符串全部放在一起?
是否可以将这一段另外设定一个字段存放?追问
我试过另外设定一个字段存放这个 字符串了,除了这个方法没有别的办法 了?
追答CREATE INDEX idx_1 ON table_1 ( func_1(col_1), func_2(col_2), func_3(col_3)
这样试试,但这样还是不是很好,在业务逻辑上下下功夫,修改一下。
首先,mysql不能创建 函数索引...不然我也不用来提问了...
追答你的mysql是哪个版本的?
最彻底的办法是改变数据结构,让sql不要写函数就可以查询的。
有哪个版本mysql 支持函数索引 ??哪个??
追答具体真的没有试过
追问-0- ,好吧,继续坐等强人
参考技术A 虽然很不情愿substring没法用索引,但是自己也没必要继续钻牛角尖了,倒是现在sql8.0 好像有了函数索引以上是关于关于mysql无法创建函数索引之蛋疼事情,具体如下:的主要内容,如果未能解决你的问题,请参考以下文章