|
|
|
Проблемы с выборкой и передачей данных
|
|||
|---|---|---|---|
|
#18+
Опишу тут ситуацию, может кто подскажет или у кого есть мысли по оптимизации всего этого хозяйства. VDS сервер Debian 9 nginx-php-fpm MySQL. У хостера в Европе. Не супер, но и не лоу. Память 2 ГБ. Проц - ? БД MySQL. В ней таблица с 6 миллионами записей. Есть скрипт, осуществляющий выборку данных. С моего компьютера, программа осуществляет post запрос к этому серверу в интернете. Вызывает скрипт, проще говоря. А скрипт выбирает данные из БД MySQL и отправляет их программе по http протоколу. Запрос такой Код: php 1. Т.е. 5000 записей с конца. Все данные всегда выбираются с конца (самые свежие). Проблема в том, что при выборке 5000 значений таким образом, всё виснет. В ssh консоли проц загружается под 100%, в MySQL Workbench вижу что запрос висит и не выполняется. В конце получаем ошибку 504. И нужно перезагружать сервер вручную. В чем тут может быть дело? Может запрос не оптимален? Или скорость выборки зависит от количества записей в таблице? Мысли, идеи, советы? Код скрипта (если вдруг нужно) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2018, 09:00 |
|
||
|
Проблемы с выборкой и передачей данных
|
|||
|---|---|---|---|
|
#18+
EvgIvn, Показывайте DDL таблицы и план запроса. Скорее всего, нужен индекс (ticker, id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2018, 09:13 |
|
||
|
Проблемы с выборкой и передачей данных
|
|||
|---|---|---|---|
|
#18+
miksoftEvgIvn, Показывайте DDL таблицы и план запроса. Скорее всего, нужен индекс (ticker, id) Я пока не в курсе про DDL таблицы и план запроса. Почитаю что это и где это. Индекс есть на id. И на другом поле, по которому иногда тоже идет выборка. Но ticker - это поле с возвращаемыми данными. Не назначать же индексы всем полям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2018, 09:30 |
|
||
|
Проблемы с выборкой и передачей данных
|
|||
|---|---|---|---|
|
#18+
EvgIvnНо ticker - это поле с возвращаемыми данными. Не назначать же индексы всем полям?Нет, ticker - это поле, по которому идёт отбор в данном запросе. По всем полям, конечно, не нужно. Индексы строятся для конкретных нужд, в частности, под конкретные запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2018, 09:53 |
|
||
|
Проблемы с выборкой и передачей данных
|
|||
|---|---|---|---|
|
#18+
EvgIvn, Что в поле value ? Тип данных? Раз уж ты только одно поле вытаскиваешь из таблицы, то советую почитать доки по функции mysqli_fetch_all и возможно отказаться от цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2018, 10:12 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39732804&tid=1829482]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 17ms |
| total: | 171ms |

| 0 / 0 |

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