Каков наилучший способ оптимизации этого определенного запроса?Оптимизировать SQL по столбцу SUBSTRING или chunk
Например, у меня есть 10-значный номер телефона, и я хотел запросить любой из этих двух.
- ГДЕ ColumnName начинаются от 123456
- ГДЕ имя_столбца1 = 123 ИЛИ имя_столбца2 = 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
Что лучше? СУБСТРИРОВАТЬ или разбить колонку?
ли LIKE гораздо предпочтительным, чем SUBSTRING? –
@JamVille... Гораздо предпочтительнее. Когда шаблон является константой/параметром и не начинается с подстановочного знака, то он может использовать индекс. –