我注意到Join
花费了很长时间,经过一些实验后发现我更换了ref
子句中的Where
字段
Where T.ref=234881283
到ID
字段
Where T.ID=25641
结果几乎是瞬间的。
这两个字段Indexed
均为BTREE
和Normal
。
我需要与我的编码员核实,如果该参考字段实际上必须是varchar(25)
vs Int
,因为它始终是基于数字的。假设现在有一些好的反应,是否有更好的方法来索引该字段以获得更好的性能?
`
答案 0 :(得分:0)
Where T.ref=234881283
如果ref
是VARCHAR
,则引用与之比较的字符串:
Where T.ref=234881283
原因:MySQL看着它说:"嗯,他有一些字符串,他正在寻找号;我会在运行该查询的每个时间将所有字符串转换为数字。"
如果值总是数字,则将ref
更改为INT
(或BIGINT
,如果它们超过20亿)。