Есть MySQL табличка
CREATE TABLE IF NOT EXISTS `users` (
`IDClient` int(11) NOT NULL,
`Phone` varchar(15) NOT NULL,
`passw` varchar(32) NOT NULL,
`ip` varchar(50) DEFAULT NULL COMMENT 'IP адрес'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY KEY (Phone)
PARTITIONS 10 */;
ALTER TABLE `users`
ADD PRIMARY KEY (`Phone`),
ADD KEY `IDClient` (`IDClient`),
ADD KEY `ip` (`ip`);
В ней порядка 3млн записей. Когда сайт не нагружен поиск
SELECT * FROM users WHERE phone='9123456789' LIMIT 1
занимает порядка 0.03 сек, но когда сайт подзагружается это время может дойти и до 5сек.
Кто в теме, можете что-нибудь посоветовать? Ведь даже 0.03 сек, имхо, много, для такого банального запроса.
UPD. MySQL сервер
Сервер: Localhost via UNIX socket
Тип сервера: Percona Server
Версия сервера: 5.6.26-74.0-log - Percona Server (GPL), Release 74.0, Revision 32f8dfd
Explain
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE users range PRIMARY PRIMARY 47 NULL 1 NULL
Может быть поможет реальное разбиение таблицы на 2,5,10 таблиц?