powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Продолжение борьбы со скоростью выполнения запросов
8 сообщений из 33, страница 2 из 2
Продолжение борьбы со скоростью выполнения запросов
    #39717336
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
8POWER-Решил попробовать LOAD INDEX INTO CACHE, как вы советовали. Очистил снова кеш дебиана.
Запрос (на выборку 200к строк) начал грузиться 60 сек. Затем загрузил все индексы в кеш. Запрос стал грузиться 15 сек. Думаю блин, попробую теперь сделать дубликат таблицы. Сделал дубликат. В таблице, которая задублирована - этот же запрос выполняется 1сек.
Как такое происходит? :(Если это было для MyISAM, то могу предположить, что дело в том, что файловая система закэшировала содержимое таблицы. Сам MyISAM не умеет кэшировать содержимое таблиц, а только индексов. А для выполнения вашего запроса требуется сначала по индексу определить нужные записи, а потом получить их содержимое из самой таблицы.

Если бы было достаточно оперативки, чтобы разместить все данные в памяти, то можно было бы попробовать покрывающий индекс - индекс, в котором есть все выбираемые поля. Тогда кэша индексов MyISAM было бы достаточно.
Правда, в этом случае (когда все данные влезают в оперативку) возникает выбор - а не стоит ли задействовать какую-нибудь key-value СУБД. Для класса задач выбора данных по единственному полю они могут дать меньшее врем выполнения, чем РСУБД. Но эта тема мне знакома очень слабо, так что подробностей никаких предложить не могу.
...
Рейтинг: 0 / 0
Продолжение борьбы со скоростью выполнения запросов
    #39717338
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
8POWER-Поставил на домашний комп 8 масик, залил эту же таблицу в 216 млн строк. Делаю аналогичный запрос без всяких загрузок индексов в кеш - 1 секунда времени занимает. Учитывая, что оперы на компе всего 16гб. А на сервере аж 128 и из них кешируется 50, если индексы загружать.А что именно не так?
"кешируется 50" - это речь про результат free -m ? Так там кэшируются все файлы, к которым было обращение, а не только таблицы MySQL. Мало ли чем там еще сервер занят...
...
Рейтинг: 0 / 0
Продолжение борьбы со скоростью выполнения запросов
    #39717343
8POWER-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft8POWER-Решил попробовать LOAD INDEX INTO CACHE, как вы советовали. Очистил снова кеш дебиана.
Запрос (на выборку 200к строк) начал грузиться 60 сек. Затем загрузил все индексы в кеш. Запрос стал грузиться 15 сек. Думаю блин, попробую теперь сделать дубликат таблицы. Сделал дубликат. В таблице, которая задублирована - этот же запрос выполняется 1сек.
Как такое происходит? :(Если это было для MyISAM, то могу предположить, что дело в том, что файловая система закэшировала содержимое таблицы. Сам MyISAM не умеет кэшировать содержимое таблиц, а только индексов. А для выполнения вашего запроса требуется сначала по индексу определить нужные записи, а потом получить их содержимое из самой таблицы.

Если бы было достаточно оперативки, чтобы разместить все данные в памяти, то можно было бы попробовать покрывающий индекс - индекс, в котором есть все выбираемые поля. Тогда кэша индексов MyISAM было бы достаточно.
Правда, в этом случае (когда все данные влезают в оперативку) возникает выбор - а не стоит ли задействовать какую-нибудь key-value СУБД. Для класса задач выбора данных по единственному полю они могут дать меньшее врем выполнения, чем РСУБД. Но эта тема мне знакома очень слабо, так что подробностей никаких предложить не могу.

Тогда наиболее вероятно то, что при дубликате MyISAM таблицы - она кешируется полностью в память, т.е. не только индексы..
...
Рейтинг: 0 / 0
Продолжение борьбы со скоростью выполнения запросов
    #39717344
8POWER-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft8POWER-Очистил снова кеш дебиана.
Запрос (на выборку 200к строк) начал грузиться 60 сек. Затем загрузил все индексы в кеш. Запрос стал грузиться 15 сек.Даже несколько раз подряд 60 секунд?
И потом несколько раз подряд по 15 секунд?

При замерах времени выполняйте запросы несколько раз, чтобы лучше понимать влияние кэшей.
Каждый запрос по одному разу, т.к. дальше он кешируется. SQL_NO_CACHE нельзя было на продакшене выполнить.
...
Рейтинг: 0 / 0
Продолжение борьбы со скоростью выполнения запросов
    #39717345
8POWER-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, и последний вопрос. Стоит ли нам вообще переходить на InnoDB? Я вот сейчас смотрю на то, какой он вялый - это ужас. MyISAM делает дубликат в 20 раз быстрее, заливает данные намного быстрее, и селектит тоже намного быстрее.
Может просто создать эти 2 таблицы в MyISAM ? У нас происходит только SELECT абсолютно всегда и то по индексам.
И раз в день около 5-10 минут инсерт. Апдейтов никогда не бывает, делетов тоже.
...
Рейтинг: 0 / 0
Продолжение борьбы со скоростью выполнения запросов
    #39717350
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
8POWER-Стоит ли нам вообще переходить на InnoDB? Я вот сейчас смотрю на то, какой он вялый - это ужас. MyISAM делает дубликат в 20 раз быстрее, заливает данные намного быстрее, и селектит тоже намного быстрее.Есть у меня подозрение...
Проверьте, в какое значение установлена настройка innodb_api_trx_level в конфиге.
Если в 1 или ни в какое, то поставьте 2.
...
Рейтинг: 0 / 0
Продолжение борьбы со скоростью выполнения запросов
    #39717351
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
8POWER-Может просто создать эти 2 таблицы в MyISAM ? У нас происходит только SELECT абсолютно всегда и то по индексам.Можно и в MyISAM. Пробуйте.
Как дополнительный вариант для тестов - создать покрывающие индексы на все нужные поля. Первыми должны идти поля по которым идет отбор, т.е. те, которые я вынес в PK.
...
Рейтинг: 0 / 0
Продолжение борьбы со скоростью выполнения запросов
    #39717352
8POWER-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, Спасибо большое, уже тестирую.
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Продолжение борьбы со скоростью выполнения запросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]