Какова будет схема хранения, которая позволит искать диапазон, в который попадает данный IP-адрес, который обеспечивает возможность оптимизации с помощью индекса.Структура для хранения CIDR-дружественных непересекающихся диапазонов IP-адресов
Итак: существует набор непересекающихся диапазонов IP-адресов (которые могут быть представлены в обозначении CIDR, если необходимо).
И он должен соответствовать диапазону, который соответствует данному IP-адресу.
Таким образом, всегда будут точно соответствовать 0..1
.
ip_from (int), ip_to (int)
не отвечает требованиям, поскольку вы не можете оптимизировать поиск через него с помощью B-Tree (или любой другой структуры индекса, доступной в mysql).
Возможно, это решение для хранения каждого сегмента сегмента IP в другом поле db? Как 'ip_segment_1',' ip_segment_2' и т. Д. И запрос на основе этого? Почти невозможно позволить базе данных использовать BTREE (или любую индексацию), когда необходимо обнаруживать шаблоны. Вероятность, что он должен проверять каждый стол, составляет почти 100%. –
@ Пространственные индексы в пространстве могут делать это на самом деле :-) – zerkms
О, это здорово, я не знал этого :) –