Как выгодный это должно использовать разделение таблиц по сравнению с нормальным подходом?
Есть ли своего рода демонстрационный случай или подробный сравнительный анализ, который мог статистически (я знаю, что это - слишком сильное слово, но действительно помогло бы, проиллюстрировано ли это некоторыми числами), подчеркивают на утилите процесса.
Вы можете прочитать до конца
. Даже несмотря на то, что статьи относятся к mysql, и все выводы, касающиеся производительности, не следует делать вслепую, если вы работаете с другой СУБД. , тем не менее, статьи хорошо описывают основные концепции и идеи вместе с некоторыми реальными числами и примерами.
Разделение на разделы является чрезвычайно мощным средством и действительно разделяет данные таблицы на несколько меньших таблиц, а затем объединяет их с помощью представления.
Например, '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' должна быть проверено, и вы, таким образом, значительно улучшите скорость.
Кроме того, представления, связанные со схемой, могут быть вставлены в (автоматическое размещение данных в правильной целевой таблице), и таблицы могут быть размещены на разных серверах (хотя это немного сложно настроить), и вы также можете добавлять индексы к представлениям.
Удачи!