powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по Engine ARCHIVE
7 сообщений из 7, страница 1 из 1
Вопрос по Engine ARCHIVE
    #39841347
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
MySql 5.7.15-log.
Есть вот такая таблица:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE TABLE evrogen__hub.hub_changelog (
  id int(11) NOT NULL AUTO_INCREMENT,
  action int(11) DEFAULT NULL,
  entity_type varchar(255) DEFAULT NULL,
  entity_id varchar(255) DEFAULT NULL,
  present varchar(255) DEFAULT NULL,
  changes blob DEFAULT NULL,
  env blob DEFAULT NULL,
  created_at int(10) UNSIGNED DEFAULT NULL,
  updated_at int(10) UNSIGNED DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = ARCHIVE,
AUTO_INCREMENT = 522204,
AVG_ROW_LENGTH = 151,
CHARACTER SET utf8,
COLLATE utf8_unicode_ci,
ROW_FORMAT = COMPRESSED;


В ней ~1.5 млн. записей
Вот такой запрос
Код: plsql
1.
SELECT id, COUNT(*) FROM hub_changelog hc GROUP BY id HAVING count(*) > 1


показывает кучу записей (первые 1000 точно, подозреваю что все) укоторых count == 5
При этом запрос по id
Код: plsql
1.
   SELECT * FROM hub_changelog WHERE id = 1


для любого id возвращает одну запись.

Есть какие то особенности engine = ARCHIVE или у меня MySql поломался ?
...
Рейтинг: 0 / 0
Вопрос по Engine ARCHIVE
    #39841371
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,

не думаю что archive engine действительно умеет в primary key. Как? Если оно не умеет индексы. Я сходу могу найти например:
https://www.percona.com/blog/2014/01/06/archive-storage-engine-expect/
https://bugs.mysql.com/bug.php?id=71211
https://bugs.mysql.com/bug.php?id=40216
...
Рейтинг: 0 / 0
Вопрос по Engine ARCHIVE
    #39841521
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij,
Спасибо.

Ну мне не очень важно Primary key.
Меня сейчас больше напрягает что group by по Id говорит что записей с таким Id много,
а SELECT по Id возвращает одну запись
...
Рейтинг: 0 / 0
Вопрос по Engine ARCHIVE
    #39841528
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimirzzz,

я уверен что это напрямую связано. Запрос с аггрегацией идёт в seqscan и находит всё что есть в табличке. А запрос по id = 1 думает, что id гарантированно уникален и останавливается после первого совпадения.
...
Рейтинг: 0 / 0
Вопрос по Engine ARCHIVE
    #39841542
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
SELECT * FROM hub_changelog WHERE id+1 = 2

А так?
...
Рейтинг: 0 / 0
Вопрос по Engine ARCHIVE
    #39841859
Vladimirzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
Ух ты. Да так возвращает 5 записей
...
Рейтинг: 0 / 0
Вопрос по Engine ARCHIVE
    #39841920
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, что надо убирать ПК.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по Engine ARCHIVE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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