|
|
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, В версии MySQL 4.0 производится другая оптимизация на выражении LIKE. Если используется выражение ... LIKE "%string%" и длина строки (string) больше, чем 3 символа, то MySQL будет применять алгоритм Турбо Бойера-Мура для инициализации шаблона для строки и затем использовать этот шаблон, чтобы выполнить поиск быстрее. MySQL 4.0 - видимо мануал древний... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 11:09:46 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
вадя, Есть возможность хотя бы на время резко (раз в 5-10) увеличить innodb_buffer_pool_size ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 11:11:12 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovне умеет MySQL использовать индекс не с начала строки.Для сканирования - почему бы и нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 11:11:46 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovвадя, не умеет MySQL использовать индекс не с начала строки. Он вам только показал possible_keys-IDX_pass_name, но реально он его не использует. Избавляйтесь от LIIKE %% ))) в данном случае 10лимонов это тестовые, чтоб почувствовать разницу четче, в реальном применении для этого метода записей не будет больше лимона . и время уже нормальное будет. и я почувствовал влияние innodb_buffer_pool_size = 512M. очень заметно. меня испугало продолжение работы mysql после выдачи результата, но оказалось, что сам mysql здесь не причём. это и радует и огорчает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 11:16:05 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
miksoft, вадя, ну вот давайте попробуем удалить этот индекс и проверить время выполнения если возможно. Сразу будет видно, USE или не USE Попробуем повесить запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 11:19:27 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
miksoftвадя, Есть возможность хотя бы на время резко (раз в 5-10) увеличить innodb_buffer_pool_size ? могу поднять до 1- 5гига, вечером попробую :) сервер крутится на виртуалке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 11:19:40 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovmiksoft, вадя, ну вот давайте попробуем удалить этот индекс и проверить время выполнения если возможно. Сразу будет видно, USE или не USE Попробуем повесить запрос? повесить запрос не удалось :) время осталось одинаковым 1мин или 36секунд возросло потребление памяти до запуск mysql занято 870М, после запуска - 970М запускаю запрос с индексом потребление памяти поднимается до 1.2Г и стабильно держится. без индекса потребление растёт до 1,4Г и держится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 11:34:57 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
ну вот теперь можно и думы думать. Индекс то все-таки не используется для ускорения, просто для скана, а насчет памяти - похоже не только индекс грузит а вся таблица, предположить больше ничего не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 11:47:18 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
вадя, а сколько выполняется LIKE "что-то%", чтобы было видно к чему стремиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 11:51:29 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovвадя, а сколько выполняется LIKE "что-то%", чтобы было видно к чему стремиться? не поверишь, стремиться бессмысленно...... выполняется мнгновено :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 12:02:46 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
вадя, вот и рез-т нормального применения индекса, так что либо уйти от LIKE %%, либо если нужны форейжны этой таблицы - создавать параллельную на MyIsam с этим полем для полнотекстового индекса, как то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 12:18:30 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
miksoftвадя, Есть возможность хотя бы на время резко (раз в 5-10) увеличить innodb_buffer_pool_size ? добавил innodb_buffer_pool_size до 1512М показатель занятости памяти остался на 1,2Г т.е. данные и так помещались в памяти. на быстродействие не сказалось мнение innodb_buffer_pool_size надо ставить на самый максимум, пока система позволяет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 19:48:22 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
вадяmiksoftвадя, Есть возможность хотя бы на время резко (раз в 5-10) увеличить innodb_buffer_pool_size ? добавил innodb_buffer_pool_size до 1512М показатель занятости памяти остался на 1,2Г т.е. данные и так помещались в памяти. на быстродействие не сказалось мнение innodb_buffer_pool_size надо ставить на самый максимум, пока система позволяет Это всё ок, но ещё раз, без ухода от LIKE '%xxx%' ты от сканирования всей таблицы не уйдёшь. Переходи на полнотекстовый индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 13:04:05 |
|
||
|
Как работает LIKE?
|
|||
|---|---|---|---|
|
#18+
авторЭто всё ок, но ещё раз, без ухода от LIKE '%xxx%' ты от сканирования всей таблицы не уйдёшь. Переходи на полнотекстовый индекс. тут уже было сравнение возможностей like и fulltext в общем одно другим не замещается. like намного более гибкий для поиска, но , к сожалению, только для данных определённого размера. 1-2 миллиона , что вполне для определённого круга задач ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 14:08:22 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39086558&tid=1832570]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 296ms |

| 0 / 0 |
