powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Падает производительность при поиске по ключу.
9 сообщений из 9, страница 1 из 1
Падает производительность при поиске по ключу.
    #39429912
NitroGenerate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Недавно столкнулся со странной штукой. Резкий рост времени выполнения запроса по одной определенной таблице и огромная нагрузка на CPU. Вы сейчас скажите, индексы проморгал, не тут-то было.
По факту:
10.1.21-MariaDB
Трафик 8 ГиБ/час
Под БД выделяем ~200 Гб RAM
4xSSD 800Gb RAID 10
Размер БД 150 Гб
Таблицы InnoDB

Проблемная таблица:
Размер: 20 Гб. и ~ 120 млн. строк (12 ГиБ данных и 9.2 ГиБ индекса)
* на данный момент


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE data_table (
  id bigint(14) UNSIGNED NOT NULL AUTO_INCREMENT,
  id_out_data bigint(20) UNSIGNED NOT NULL,
  id_out_link int(11) UNSIGNED NOT NULL,
  type enum ('type1', 'type2') NOT NULL,
  link varchar(256) DEFAULT NULL,
  date_upd datetime NOT NULL,
  date_add datetime NOT NULL,
  PRIMARY KEY (id),
  INDEX id_out_link(id_out_link, date_add),
  UNIQUE INDEX udx_id_out_data (id_out_data)
)
ENGINE = INNODB;



Оптимизация не помогает.
Чтобы исправить ситуацию приходится чистить таблицу(удалять данные в ущерб проекту), после чистки нагрузка спадает почти до нулевой. Причем ни кол-во запросов, ни трафик - не меняются, и даже на оборот, возрастают. (т.к. сервер начинает быстрее обрабатывать запросы)

Скрин нагрузки на машину: http://joxi.ru/l2ZxW06t9kBQrJ

Вешает MySQL вот этот безобидный запрос:
Код: sql
1.
SELECT * FROM `data_table` WHERE `id_out_link` = '4584858094' LIMIT 50;



Индекс пробовал менять вместо id_out_link, date_add на id_out_link . Безрезультатно.

Что заметил, тем больше общий объем БД, тем чаще приходится чистить таблицу data_table . Не далек тот день, когда чистка этой таблицы уже не будет помогать и придется чистить всю БД

На этом мои идеи кончились. Надеюсь вы мне поможете.
...
Рейтинг: 0 / 0
Падает производительность при поиске по ключу.
    #39430059
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
id_out_link int(11) UNSIGNED NOT NULL,


и
Код: sql
1.
 WHERE `id_out_link` = '4584858094'


у кого-то руки не там выросли?
...
Рейтинг: 0 / 0
Падает производительность при поиске по ключу.
    #39430266
NitroGenerate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы хотите указать мне на кавычки ? =)
...
Рейтинг: 0 / 0
Падает производительность при поиске по ключу.
    #39430326
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) limit бtз Order By
2) explain?
...
Рейтинг: 0 / 0
Падает производительность при поиске по ключу.
    #39430375
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NitroGenerateВы хотите указать мне на кавычки ? =)
я хочу сказать надо сравнивать int c int, а не с varchar
...
Рейтинг: 0 / 0
Падает производительность при поиске по ключу.
    #39430461
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NitroGenerateПод БД выделяем ~200 Гб RAMА MySQL-ю об этом сказать не забыли?
...
Рейтинг: 0 / 0
Падает производительность при поиске по ключу.
    #39430470
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, помимо кавычек, бесполезно сравнивать '4584858094' с полем типа int UNSIGNED, т.к. такое число туда даже не влезет.
Подозреваю, что MySQL оба значения для корректного сравнения приводит к bigint и в результате этого индекс использовать становится невозможно.
...
Рейтинг: 0 / 0
Падает производительность при поиске по ключу.
    #39430483
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Вы вот щас серьезно про кавычки?
...
Рейтинг: 0 / 0
Падает производительность при поиске по ключу.
    #39430495
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowmiksoft,

Вы вот щас серьезно про кавычки?Да, вполне. На форуме пару-тройку раз встречалась ситуация, когда MySQL преобразование типов производил в неверном направлении. Т.е. не строковый литерал в число, а числовое поле в строку. Поэтому считаю, что такой вариант исключать нельзя, хотя он и редок.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Падает производительность при поиске по ключу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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