Индекс чтения Maria-Db после загрузки в память - PullRequest
0 голосов
/ 01 мая 2020

Я работаю с 2 таблицами в отдельных базах данных. T01 имеет около 10 000 000 записей, C01 имеет 150 000 записей. пожалуйста, обратите внимание, что это очень урезано от всего проекта, просто чтобы попасть в проблемную зону.

LOAD INDEX INTO CACHE temp2.c01;
select * from temp1.c54 inner join temp2.c01 on temp1.c01.x3 = temp2.c01.x3 limit 1;

Если есть совпадение, то будет только одно. В основном мне нужно знать, существует ли он. Хотя в настоящее время я не понимаю, почему он так себя ведет, я открыт для предложений по оптимизации этого запроса.

Проблема, с которой я сталкиваюсь, заключается в том, что даже после использования команды загрузки в кэш я наблюдаю за монитором ресурсов и он показывает, что temp2 / c01.msi читается. это сравнение занимает около 15 секунд. Как я уже сказал, это урезано для тестирования. Есть тысячи таких сравнений с temp2.t01.

key buffer 8,​589,​934,​592
mrr buffer      262,​144
myisam sort buffer      8,​589,​934,​592
net buffer      8,​192
preload buffer  1,073,741,824

работает на windows 10 с 24 ГБ ОЗУ Версия сервера: 10.4.11-MariaDB - двоичный дистрибутив mariadb.org

USE temp2;
CREATE TABLE `t01` (
  `id` int(11) NOT NULL,
  `x3` binary(32) NOT NULL,
  `loopcount` bigint(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

ALTER TABLE `t01`
  ADD PRIMARY KEY (`id`),
  ADD KEY `x3` (`x3`);
ALTER TABLE `t01`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

USE temp1; Заменить c01 на второй стол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...