BelStudent
целеустремлённый чел
Оптимизация запроса со сравнением строк
Есть SQL-запрос:
SELECT `id` FROM `table` WHERE `fio`=$str
где $str - моя строка
Нужна оптимизация этого кода и я вот что подумал, сранение строк довольно медленно идёт, а может в таблицу БД записывать и СУММУ СИМВОЛОВ?
Примерно так:
Для фамилии Иванов мы получим:
s=ord('И')+ord('в')+ord('а')+ord('н')+ord('о')+ord('в')
А потом в WHERE уже забивать не сранение строк, а сравнение чисел.
Т.е. кажлому `fio` в БД получиться своё число.
Если случиться так что в таблице имется несколько одинаковых чисел (так получилось, что сумма одинакова), то только тогда сравнивать строки.
Ну как вам? Будет выигрыш в скорости? а?
p.s. только я вот подумал, а что если эти числа потом в БД отсортировать, например, по возрастанию?
Тогда если получили запрос с '..WHERE `fio`=$str' считаем сумму символов в строке $str, а потом с помощью билинейного поиска БЫСТРО находим нужный id.
Теоретически запросы должны летать.
Есть SQL-запрос:
SELECT `id` FROM `table` WHERE `fio`=$str
где $str - моя строка
Нужна оптимизация этого кода и я вот что подумал, сранение строк довольно медленно идёт, а может в таблицу БД записывать и СУММУ СИМВОЛОВ?
Примерно так:
Для фамилии Иванов мы получим:
s=ord('И')+ord('в')+ord('а')+ord('н')+ord('о')+ord('в')
А потом в WHERE уже забивать не сранение строк, а сравнение чисел.
Т.е. кажлому `fio` в БД получиться своё число.
Если случиться так что в таблице имется несколько одинаковых чисел (так получилось, что сумма одинакова), то только тогда сравнивать строки.
Ну как вам? Будет выигрыш в скорости? а?
p.s. только я вот подумал, а что если эти числа потом в БД отсортировать, например, по возрастанию?
Тогда если получили запрос с '..WHERE `fio`=$str' считаем сумму символов в строке $str, а потом с помощью билинейного поиска БЫСТРО находим нужный id.
Теоретически запросы должны летать.