Секционирование является чрезвычайно мощным, и на самом деле данные таблицы делятся на несколько небольших таблиц, а затем объединяются с помощью представления.
Например, «ipnumbers» можно разделить на таблицы «ipnumbers_1», «ipnumbers_2» и «ipnumbers_3», где первая таблица содержит ограничения, так что хранятся только ipnumbers от 0.0.0.0 до 50.0.0.0, и вторая таблица содержит ограничения, позволяющие хранить только диапазоны от 50.0.0.1 до 100.0.0.0 и т. д. Затем можно добавить представление, объединяющее разделенные таблицы в одну:
SELECT * FROM ipnumbers_1
UNION ALL
SELECT * FROM ipnumbers_2
UNION ALL
SELECT * FROM ipnumbers_3
Теперь, когда вы запрашиваете представление для определенного ipnumber:
SELECT * FROM ipnumberview WHERE ipno=60.0.0.1
.. Оптимизатор запросов к SQL-серверу будет знать, что нужно проверять только таблицу 'ipnumbers_2', и вы получите значительное улучшение скорости.
Кроме того, привязанные к схеме представления могут быть вставлены в (автоматически помещая данные в правильную таблицу назначения), а таблицы могут быть размещены на разных серверах (хотя это немного сложно настроить), и вы также можете добавить индексы к представлениям.
Веселись!