У меня есть выбор для создания трех таблиц с одинаковой структурой, но с другим содержимым или с одной таблицей со всеми данными и еще одним столбцом, который отличает данные. Каждая таблица будет содержать около 10 000 строк, и она будет использоваться исключительно для поиска данных. Ключевыми критериями проектирования является скорость поиска, поэтому это быстрее: три таблицы с 10 тыс. Строк каждая или одна таблица с 30 тыс. Строк или нет существенных различий? Примечание. Все столбцы, которые будут использоваться в качестве параметров запроса, будут иметь индексы.Три таблицы SQL или один?
ответ
Не должно быть существенной разницы между рядами 10k или 30k в любой современной СУБД с точки зрения времени поиска. В любом случае недостаточно разницы, чтобы оправдать де-нормализацию. Обозначенный столбец классификатора является общим подходом для такой конструкции.
Единственный раз, когда вы можете рассмотреть возможность отмены нормализации, если ваш шаблон обновления влияет на ограниченный набор данных, которые вы можете поместить в «короткую» таблицу (например, сегодняшние сообщения в социальной сети) с небольшими (er) индексами для быстрого вставки/обновления и фоновый процесс, переносящий стабилизированные обновления в большую, полностью проиндексированную таблицу. Дело в том, что вы действительно выиграли во время операций записи будет драматичным, хотя и с очень конкретными и неудачными требованиями. Двигатели СУБД достаточно сложны, чтобы эффективно обрабатывать большинство простых сценариев. 30k или строки не похожи на кандидата.
Если вы все еще сомневаетесь, очень легко написать тест для проверки конкретной настройки базы данных/системы. Я думаю, что если вы разместите свои данные здесь с реальными данными, это будет полезной информацией для всех на ваших шагах.
Таблица (ы) будет полностью регенерирована каждый квартал и будет доступна только для чтения с этой точки вперед, поэтому меня интересует только скорость запросов. Обновление не является проблемой. –
Таблицы еще не существуют, но как только они это сделают, я проведу несколько тестов, как вы предлагаете ... и опубликуйте результаты. –
Помимо вопроса о скорости, с которым другие плакаты покрывают, и я согласен с вами, вы должны также учитывать бизнес-модель, которую вы реплицируете в своей базе данных, поскольку это может повлиять на стоимость обслуживания вашего решения.
Если возможно, что 3 'вещи' могут превратиться в 4, и вы выбрали отдельный путь к таблице, тогда вам придется добавить другую таблицу. Если вы выбираете путь дискриминатора, то это так же просто, как придумать новый дискриминатор.
Однако, если вы выберете путь дискриминатора, а затем новые требования диктуют, что у одной из «вещей» есть больше данных для хранения, вам придется добавить дополнительные столбцы в таблицу, которые не имеют отношения к другим вещам ».
Я не могу сказать, какой правильный путь, так как только вы знаете свою бизнес-модель.
- 1. присоединиться три таблицы SQL
- 2. SQL Три таблицы присоединиться
- 3. Sql Присоединяйтесь Три таблицы
- 4. SQL php connect три таблицы
- 5. Три разных таблицы (sql) показывают как один контент
- 6. SQL Server: присоединиться три таблицы
- 7. Как сочетающие три таблицы результат по запросу один SQL
- 8. SQL-запрос, охватывающий три таблицы
- 9. SQL-сообщение, объединяющее три таблицы
- 10. Объединяя три таблицы в SQL
- 11. SQL подзапрос Joinwith три таблицы
- 12. Sql Три таблицы Внутренние Join?
- 13. ПРИСОЕДИНЯЙТЕ три таблицы, даже если один пуст
- 14. Как объединить три таблицы в один стол?
- 15. Соедините три таблицы, используя один запрос
- 16. T-SQL внешнего соединения через три таблицы
- 17. SQL отдельный один столбец на три
- 18. SQL, соединяющий три таблицы, приоритет соединения
- 19. Три переключателя, один свет
- 20. Три вставки заявления в три таблицы
- 21. Объедините три таблицы в один стол, EXCEL POWERQUERY
- 22. Невозможно соединить три таблицы
- 23. Как получить результат как массив (один, два, три, один, два, три, один, два, три, один)
- 24. РЕГИСТРИРУЙТЕСЬ три таблицы
- 25. SQL заявление, чтобы присоединиться три таблицы
- 26. Ошибка синтаксиса SQL JOIN три таблицы
- 27. sql query три таблицы (Employee, Role, Fees)
- 28. Как добавить три таблицы в SQL Server
- 29. соединяйте три таблицы вместе SQL PHP
- 30. SQL-запросы, чтобы присоединиться три таблицы
Больше информации было бы полезно, но звучит для меня, если у вас есть три разных типа данных, а затем три разных таблицы. – Marvo
Все столбцы в каждом из трех источников данных идентичны –
Вы можете найти * PARTITIONING * полезную концепцию, если ваша БД поддерживает ее (например, Postgres). Похоже, это может быть ваша ситуация. –