0
优化此特定查询的最佳方法是什么?通过SUBSTRING或块列优化SQL
例如我有10位数的电话号码,我想查询这两个中的任何一个。
- WHERE COLUMNNAME从123456
- WHERE columnName1 = 123 OR columnName2 = 456
启动。
第一:使用SUBSTRING
SELECT *
FROM table
WHERE SUBSTRING(telephone, 1,6)
数据:
id | telephone
1 | 1234560001
2 | 1234560002
二:通过分块列成碎片
SELECT *
FROM table
WHERE pt1 = 123 AND pt2 = 456
SELECT *
FROM table
WHERE pt1 = 123 OR pt2 = 456
数据:
id | pt1 | pt2 | pt3
1 | 123 | 456 | 0001
2 | 123 | 456 | 0002
哪个更好? SUBSTRING或分块列?
确实喜欢比SUBSTRING多首选? –
@JamVille。更喜欢当该模式是一个常量/参数,并不以通配符开头,那么它可以使用索引。 –