Вопросы по структуре таблицы

Сообщения
1,176
Реакции
2,144
Помог
57 раз(а)
Приветствую. Имеется таблица:
Код:
				CREATE TABLE IF NOT EXISTS `test` (
					`id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
					`ip` varchar(16) NOT NULL, 
					`ip_status` tinyint(1) unsigned NOT NULL, 
					`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
						PRIMARY KEY (`id`), 
						KEY `ip` (`ip`)
				) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Выборка будет производиться одним единственным образом:
Код:
SELECT `ip_status` FROM `test` WHERE `ip` = '#########' LIMIT 1
Где ######### - IP адрес.

Записи будут заноситься активно, т.е. за месяц в таблицу может натечь в районе 10к. Подскажите пожалуйста, необходим ли здесь KEY `ip`, будет ли при его наличии выигрыш в скорости выборки?
 
Последнее редактирование:
Сообщения
957
Реакции
1,184
Помог
52 раз(а)
Индекс нужен обязательно, без него при выборке будет прогон по всем столбцам таблицы, что на больших объемах строк - зло
 
Сообщения
1,176
Реакции
2,144
Помог
57 раз(а)
Sonyx, Мне тут ещё подсказывают, что IP лучше хранить не строкой, а числом. Мол, быстрее будет. Так ли это, не в курсе? Я понимаю, что надо бы по хорошему самому тесты проводить, но по времени совсем швах, а надо уже довести до ума свою поделку.
 
Сообщения
271
Реакции
423
Помог
5 раз(а)
BlackSignature, Да правильно советуют, если числом, то всего 4 байта для сравнения, что гораздо быстрее чем например строка "192.168.1.1" 11 значащих байт и нуль терминатор в конце.
 
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу