|
|
|
Скорость выполнения запроса (Большая таблица)
|
|||
|---|---|---|---|
|
#18+
Проработав все о чем поговорили, кроме смещения таблицы с горизонтальной в вертикальную, получилось добиться результата этого же запроса вместо 0.64-0.75с вместо 1.25с. Проглядел, что maxPlayers стоял int , убрал float на profit в mediumint , currency теперь не $ а 1 и что-то еще, уже подзабыл. Долго возился с настройками MySQL сегодня, заметил вот такую вещь: # Query_time: 3.964766 Lock_time: 0.000197 Rows_sent: 1051346 Rows_examined: 3154038 SET timestamp=1538129731; SELECT SQL_NO_CACHE `id`, `currency`, `pp1` AS `profit`, `psd1` AS `isSD`, `handLimit` FROM `ps_hands` WHERE `p1` = '96317' UNION ALL (SELECT `id`, `currency`, `pp2` AS `profit`, `psd2` AS `isSD`, `handLimit` FROM `ps_hands` WHERE `p2` = '96317') UNION ALL (SELECT `id`, `currency`, `pp3` AS `profit`, `psd3` AS `isSD`, `handLimit` FROM `ps_hands` WHERE `p3` = '96317') UNION ALL (SELECT `id`, `currency`, `pp4` AS `profit`, `psd4` AS `isSD`, `handLimit` FROM `ps_hands` WHERE `p4` = '96317') UNION ALL (SELECT `id`, `currency`, `pp5` AS `profit`, `psd5` AS `isSD`, `handLimit` FROM `ps_hands` WHERE `p5` = '96317') UNION ALL (SELECT `id`, `currency`, `pp6` AS `profit`, `psd6` AS `isSD`, `handLimit` FROM `ps_hands` WHERE `p6` = '96317') UNION ALL (SELECT `id`, `currency`, `pp7` AS `profit`, `psd7` AS `isSD`, `handLimit` FROM `ps_hands` WHERE `p7` = '96317') UNION ALL (SELECT `id`, `currency`, `pp8` AS `profit`, `psd8` AS `isSD`, `handLimit` FROM `ps_hands` WHERE `p8` = '96317') UNION ALL (SELECT `id`, `currency`, `pp9` AS `profit`, `psd9` AS `isSD`, `handLimit` FROM `ps_hands` WHERE `p9` = '96317') ORDER BY `id` ASC; Этот запрос на самого крутого(по количеству игр) на данный момент игрока выполняется 3.5-4.3сек. Слоу лог: Rows_sent: 1051346 Rows_examined: 3154038 Как это возможно? У меня проиндексирован p1-p9 , он ведь должен читать всего 1051346 строк, вместо 3 миллионов? Почему он читает еще 2 миллиона? Если через OR OR OR то вообще 5 млн и скорость запроса в 2 раза хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 13:24 |
|
||
|
Скорость выполнения запроса (Большая таблица)
|
|||
|---|---|---|---|
|
#18+
В таблице сейчас 66 млн строк... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 13:32 |
|
||
|
Скорость выполнения запроса (Большая таблица)
|
|||
|---|---|---|---|
|
#18+
8POWER-Слоу лог: Rows_sent: 1051346 Rows_examined: 3154038 Как это возможно? У меня проиндексирован p1-p9 , он ведь должен читать всего 1051346 строк, вместо 3 миллионов?Судя по тому, что числа различаются ровно в 3 раза, это какой-то эффект самого MySQL. Например, либо от UNION ALL-ов, либо от сортировки, либо от обоих. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 23:09 |
|
||
|
Скорость выполнения запроса (Большая таблица)
|
|||
|---|---|---|---|
|
#18+
miksoft8POWER-Слоу лог: Rows_sent: 1051346 Rows_examined: 3154038 Как это возможно? У меня проиндексирован p1-p9 , он ведь должен читать всего 1051346 строк, вместо 3 миллионов?Судя по тому, что числа различаются ровно в 3 раза, это какой-то эффект самого MySQL. Например, либо от UNION ALL-ов, либо от сортировки, либо от обоих. Судя по всему реально так. Убрал юнионы: Код: sql 1. 2. 3. Затем убрал ордер и стало ровно в ровно строчек..: Код: sql 1. 2. 3. Затем все вернул обратно: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. И результат, как из этого видно - юнионы быстрее, даже с ордером.. Эх. Спасибо за помощь. Не знал. А вам надо идти в майкрософт работать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 23:53 |
|
||
|
Скорость выполнения запроса (Большая таблица)
|
|||
|---|---|---|---|
|
#18+
Попытался еще поднастроить my.cnf , с помощью mysqltuner но долго думав понял, что тут и я болван и тюнер. Т.к. он не знает, какая у меня непростая задача) а я потому, что боюсь сервер скоро сгорит от того, что я "типо" настроил.. Ха-ха. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 23:54 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39710177&tid=1829576]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 137ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...