@WiNNeR_tig

Борьба с блокировками в таблицах тип данных memory, посредством использования Redis, стоит ли?

Имеется такая таблица, в ней к вечеру скапливается около 1 мл записей, таблица работает активно на чтение, запись и обновления, а так же в течении дня ещё делаются удаления где возникают блокировки до 0.2 секунд за 1 удаление...

Сначала удалял обычным DELETE запросом с указанием ключа status и date , потом попробовал через цикл так как на date не стоит индекс, так как это поле используется только при удалении.

Время загрузки: 0.26188206672668 - Скорость: 0.262 мс. 
DELETE FROM `tb_visits` WHERE `id` = '605242' LIMIT 1


Думаю перенести всё в Redis и делать переборку по ключу, та как SELECTы могут быть такими

SELECT * FROM `tb_visits` WHERE `idad` = '338236' AND `status` = '0' LIMIT 127
SELECT `id` FROM `tb_visits` WHERE `idad` = '416' AND (`idus` = '1481066' OR `ip` = INET_ATON('185.124.154.186')) LIMIT 1


Стоит ли это делать или можно как то решить вопрос по другому ?
И ещё, по этому же принципу на сайте ещё десяток таких таблиц но в них не набирается более 100т записей за сутки.

CREATE TABLE `tb_visits` (
  `id` int(11) UNSIGNED NOT NULL,
  `idad` int(11) UNSIGNED NOT NULL,
  `idus` int(11) UNSIGNED NOT NULL,
  `ip` int(10) UNSIGNED NOT NULL,
  `date` int(10) UNSIGNED NOT NULL,
  `status` enum('0','1') NOT NULL DEFAULT '0'
) ENGINE=MEMORY DEFAULT CHARSET=utf8 COMMENT='Запись визитов';

INSERT INTO `tb_visits` (`id`, `idad`, `idus`, `ip`, `date`, `status`) VALUES (1016695, 336347, 1488770, 630656028, 1507867665, '1');

ALTER TABLE `tb_visits`
  ADD PRIMARY KEY (`id`),
  ADD KEY `status` (`status`),
  ADD KEY `idad` (`idad`),
  ADD KEY `idus` (`idus`),
  ADD KEY `ip` (`ip`);
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы