mysql 排序索引字段的优化

多表连接排序的创建索引优化

ORDER BY
b.registrationno + 0 DESC,
a.sortno DESC

两个不同的表其中的一个字段排序导致索引失效(a是主表,b是副表)

我尝试把排序都换成主表创建过索引的字段是可以生效的,当我把排序的字段都换成副表创建过索引的字段就不能生效了

排序字段的索引第一个副表的,一个是主表的,要怎样设置索引才能生效呢

https://pan.baidu.com/s/1Tqc7rnE3AoOCrc66wgsIqg
nig6(数据表 其中art_artwork是已经创建好的索引,我要在art_attachments创建索引)

b.registrationno + 0,+操作会破坏索引,这块连接0的意义是什么

并不一定会走索引, mysql会根据性能检测来决定。
比如:当数据量少的情况下,不走索引的速度会比走索引更快。

order by之前加一个 group by 试试

你把where条件放在a表里,然后类型不是可以直接转换的吗,不用加0,

可以了解一下索引失效的主要原因有哪些,你再去做吧