MySQL, огромная таблица, ускорение выбрки

123 4
kxk
На сайте с 30.01.2005
Offline
990
kxk
#11

Dinozavr, Кодерам лень, а мне проще + 1 сервер в балансер воткнуть при повышении нагрузки:)

Ваш DEVOPS
K
На сайте с 01.08.2009
Offline
88
#12

Dinozavr

Все на виртуалке крутится пока что. Дело до паблика еще не дошло.

- 2Гб оперативной памяти

- 1 ядро от Intell Core i5 3700 МГц

- Debian + apache2 + .....

I
На сайте с 23.02.2015
Offline
45
i4e
#13
kalim:
Есть таблица на 500Мб. В ней 2.500.000 записей. Выборка производится по ID (primary key). Движок MyISAM.

...

Запрос занимает более 1 секунды.
Выборка одиночной записи занимает в среднем 0.02

0.02*50=1 😂

Могу ошибаться, но вроде бы костыль IN работает как сет запросов.

А вообще странная ситуация. Вы точно ничего не недоговариваете? Мой старичок:

SELECT SQL_NO_CACHE * FROM `table` WHERE `id`=1234567

Отображает строки 0 - 0 (1 всего, запрос занял 0.0003 сек.)

В таблице 14 млн. записей, весит 3600Мб. Это, кстати, ни в коем случае не считается "огромной таблицей". Так что у вас изначально что-то не так. Не совсем понятно, что означает "на виртуалке крутится"? Поставили виртуальную ОСь? Скорее всего, там где-то кривой софт и возникают задержки IO. Попросите у знакомого сделать на рабочем сервере вам базу для теста и тренируйтесь там, скорее всего, проблема отпадет сама собой.

Если бы все работало на продакшине, советовал бы смотреть EXPLAIN, обновить MySQL, поставить MySQLTuner, попробовать указывать LIMIT для запросов, где заранее известно количество строк выборки.

K
На сайте с 01.08.2009
Offline
88
#14

Единственное, что "недоговорил", это то, что время выполнения запросов измеряю через PHP скрипт (записал текущее время, запустил запрос, сравнил время).

Виртуалка - VirtualBox с Debian и сетевым интерфейсом типа мост, запущенный на хостовой Windows7.

Ничего там в IO не упирается. Запускал весь проект на сервере (просто ставил debian на свой комп "нативно"), все работает примерно так же. Криво спроектирована БД - не исключено, не эксперт я...

i4e

Может база лежит на SSD? Моя на HDD

I
На сайте с 23.02.2015
Offline
45
i4e
#15

Попробуйте все на нормальном веб-сервере и считайте время выполнения MySQL запросов отдельно.

У меня на сервере обычный HDD.

K
На сайте с 01.08.2009
Offline
88
#16

Я через phpmyadmin порой смотрю время выполнения запросов. Он пошуршит венчестером секунды 3, а потом родит "время выполнения запроса 0,25 секунд". Вот поэтому и смотрю реальное время.

Надо сказать, OPTIMIZE TABLE дал эффект. Выборки стали раз в 5-10 быстрее. Но при больших выборках все ровно более 1 сек...

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#17
Но при больших выборках все ровно более 1 сек...

Переезжайте туда, где SSD диск.

А вообще более 1 секу, в принципе не критично. Вот если бы более 5-ти секунд, тогда проблемы.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
I
На сайте с 23.02.2015
Offline
45
i4e
#18
kalim:
Я через phpmyadmin порой смотрю время выполнения запросов. Он пошуршит венчестером секунды 3, а потом родит "время выполнения запроса 0,25 секунд". Вот поэтому и смотрю реальное время.

Это и есть реальное время выполнения запроса. Секунды три он шуршит - это интерпретируется сам phpmyadmin, он довольно тяжелый, к слову.

---------- Добавлено 23.02.2015 в 12:57 ----------

LEOnidUKG:
А вообще более 1 секу, в принципе не критично. Вот если бы более 5-ти секунд, тогда проблемы.

Да ну! А ничего что тот запрос должен выполняться в 100 раз быстрее? А что будет при серьезном ждойне, к примеру? А что будет если на сайте будет одновременно сотня посетителей? Даже на небольшом сайте это возможно - сейчас пауков разных сервисов всевозможных развелось до жути.

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#19
i4e:
Да ну! А ничего что тот запрос должен выполняться в 100 раз быстрее?

Читайте внимательно:

Все на виртуалке крутится пока что.

Этот HDD там могут 100 сайтов других раздирать по полной. Отсюда и тормоза.

I
На сайте с 23.02.2015
Offline
45
i4e
#20
LEOnidUKG:
Читайте внимательно:
kalim:
Виртуалка - VirtualBox с Debian и сетевым интерфейсом типа мост, запущенный на хостовой Windows7.

. . . . . . 😂

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий