powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Расскажите про индексы в MySQL
13 сообщений из 13, страница 1 из 1
Расскажите про индексы в MySQL
    #39905348
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. С MySQL никогда не работал на экспертном уровне, поэтому, мои вопросы могут показаться очевидными, просьба сильно не пинать.

И так.
Пытаюсь оценить производительность БД Zabbix, сервис использует Percona 5.6.41.

Есть большая таблица hystory (147Gb), вижу, что для таблицы создан индекс, включающий поля itemid и clock.

Делаю запрос к таблице:
Код: sql
1.
SELECT * FROM `zabbix`.`history_old` LIMIT 1000;


Данные получаю моментально (Длительность 1 запрос: 0,000 sec.)
Добавляю условие:
Код: sql
1.
SELECT * FROM `zabbix`.`history_old` where clock>1576627200 LIMIT 1000;


И запрос работает по 10 минут и более, не возвращая данные, далее просто срубаю его.

Такое ощущение, что индекс просто не используется. Как в MySQL можно это выяснить?
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905355
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТакое ощущение, что индекс просто не используется. Как в MySQL можно это выяснить?
explain extended
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905356
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905372
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
создан индекс, включающий поля itemid и clock
Составной индекс по двум полям или на каждое поле свой индивидуальный индекс?
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905385
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle
teCa
создан индекс, включающий поля itemid и clock
Составной индекс по двум полям или на каждое поле свой индивидуальный индекс?

Судя по всему составной из двух полей
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905396
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905414
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять эта наскальная живопись...
SHOW CREATE TABLE покажите
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905421
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle
Опять эта наскальная живопись...
SHOW CREATE TABLE покажите


Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE `history_old` (
  `itemid` bigint(20) unsigned NOT NULL,
  `clock` int(11) NOT NULL DEFAULT '0',
  `value` double(19,4) DEFAULT NULL,
  `ns` int(11) NOT NULL DEFAULT '0',
  KEY `history_1` (`itemid`,`clock`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905466
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, такой индекс не будет использован. Если б по `itemid` искали, тогда возможно. А так `clock` не на первом месте.
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905611
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle
Да, такой индекс не будет использован. Если б по `itemid` искали, тогда возможно. А так `clock` не на первом месте.

А какими средствами можно определить фрагментацию индекса?
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39905700
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
какими средствами можно определить фрагментацию индекса?
Гм... а зачем? всё равно он а) кэшируется минимум дважды б) грузится страницами, а не весь.
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39906310
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
Всем привет. С MySQL никогда не работал на экспертном уровне, поэтому, мои вопросы могут показаться очевидными, просьба сильно не пинать.

И так.
Пытаюсь оценить производительность БД Zabbix, сервис использует Percona 5.6.41.

Есть большая таблица hystory (147Gb), вижу, что для таблицы создан индекс, включающий поля itemid и clock.

Делаю запрос к таблице:
Код: sql
1.
SELECT * FROM `zabbix`.`history_old` LIMIT 1000;


Данные получаю моментально (Длительность 1 запрос: 0,000 sec.)
Добавляю условие:
Код: sql
1.
SELECT * FROM `zabbix`.`history_old` where clock>1576627200 LIMIT 1000;


И запрос работает по 10 минут и более, не возвращая данные, далее просто срубаю его.

Такое ощущение, что индекс просто не используется. Как в MySQL можно это выяснить?


Тут индексы
0) вообще ни при чём
1) не используются и не должны
2) нет смысла обсуждать .
...
Рейтинг: 0 / 0
Расскажите про индексы в MySQL
    #39906399
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
0) вообще ни при чём
1) не используются и не должны
Не соглашусь.
Выдернуть 1000 записей по индексу из 147ГБ явно быстрее, чем фуллскан.

Вот только индекс нужен подходящий. Например, из одного поля clock.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Расскажите про индексы в MySQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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