Мы хотели бы добавить нормальный индекс в поле следующей таблицы MySQL и хотели бы понять влияние на производительность сервера перед этим. Например. будет ли индекс получать дополнительную оперативную память и замедлить базу данных в результате?Влияние производительности на добавление индекса MySQL в большую таблицу
Мы понимаем, что для создания индекса потребуется время. нас это не беспокоит. скорее, мы хотим знать, нужно ли нам обновлять наш сервер, чтобы предвидеть потенциальное увеличение нагрузки/давления памяти в базу данных после добавления индекса. наш dba настаивает на том, что мы должны увеличить объем оперативной памяти с 16 ГБ до 48 ГБ, поскольку он считает, что новый индекс будет храниться в ОЗУ, что приведет к тому, что у сервера закончится нехватка памяти для других операций. было бы здорово подтвердить, что это необходимо.
Заранее благодарим за советы экспертов. версия
MySQL: 5.5.30
ОС: CentOS
Оборудование конфигурации: 8 Ядро, 32G ОЗУ, 1 ТБ диск
Размер стола: 490GB
Количество строк: 67M
CREATE TABLE `mytable` (
`field_1` text NOT NULL,
`field_2` varchar(200) NOT NULL,
`field_3` varchar(100) NOT NULL,
`field_4` text NOT NULL,
`field_5` char(8) NOT NULL,
`field_6` varchar(100) NOT NULL DEFAULT '',
`field_7` varchar(100) DEFAULT '',
`field_8` varchar(20) NOT NULL,
`field_9` char(16) NOT NULL,
`field_0` varchar(25) NOT NULL,
`field_a` varchar(50) NOT NULL DEFAULT '',
`field_b` varchar(20) DEFAULT '',
`field_c` varchar(35) DEFAULT '',
`field_d` varchar(35) DEFAULT '',
`field_e` varchar(30) NOT NULL DEFAULT '',
`field_f` varchar(30) DEFAULT '',
`field_g` varchar(3) NOT NULL DEFAULT 'xx',
`field_h` varchar(50) DEFAULT '',
`field_i` varchar(100) DEFAULT '',
`field_j` char(8) NOT NULL,
`field_k` varchar(10) NOT NULL DEFAULT '',
`field_l` datetime NOT NULL,
PRIMARY KEY (`field_9`),
KEY `field_j_idx` (`field_j`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Имейте в виду, что добавить такой индекс к такой большой таблице не составит труда – Redithion
благодарит за напоминание. мы понимаем, что для создания индекса потребуется время. нас это не беспокоит. скорее, мы хотим знать, нужно ли нам обновлять наш сервер, чтобы предвидеть потенциальное увеличение нагрузки/давления памяти в базу данных после добавления индекса. наш dba настаивает на том, что мы должны увеличить объем оперативной памяти с 16 ГБ до 48 ГБ, поскольку он считает, что новый индекс будет храниться в ОЗУ, что приведет к тому, что у сервера закончится нехватка памяти для других операций. было бы здорово подтвердить, что это необходимо. –
Меня больше беспокоит размер вашего диска, чем размер вашей оперативной памяти. Кажется, что большие таблицы работают в меньших ОЗУ только для поиска - все зависит от типов запросов и случайности индексов и обращений. Например, если field_9 - это какой-то дайджест или uuid, я ожидаю, что вы уже будете мертвы в воде. –