Что такое «Большая база данных»? - PullRequest
67 голосов
/ 15 марта 2009

Хорошо, тупой вопрос, который я знаю, но я вижу туманный комментарий «большая база данных», а также маленький и средний, и мне интересно, что это значит. Может кто-нибудь определить, что такое малая, средняя и большая база данных для нас, новичков в SQL?

Ответы [ 8 ]

95 голосов
/ 15 марта 2009

Нет порога, когда маленькая база данных становится средней или средняя база данных становится большой. Как правило, когда я слышу эти термины, я думаю о конкретных порядках с точки зрения общего количества хранимых записей.

  • Малый: 10 5 или меньше записей.
  • Средний: от 10 5 до 10 7 записей.
  • Большой: от 10 7 до 10 9 записей.
  • Очень большое: 10 9 или большее количество записей.

Как подсказал плакат dkretz , вы также можете подумать об этом с точки зрения свойств, которыми обладает каждый вид базы данных. Я бы сказал так:

  • Маленький: производительность не имеет значения. Ваши запросы работают нормально без каких-либо специальных оптимизаций. Вы видите только незначительную разницу в производительности при использовании передовых улучшений, таких как индексы.

  • Средний: в вашей базе данных, вероятно, есть один или несколько сотрудников, которым назначен неполный рабочий день для обслуживания и ухода. Эти люди обращают внимание на здоровье базы данных; их основная административная ответственность заключается в предотвращении недопустимых проблем с производительностью и минимизации простоев.

  • Large: Вероятно, есть выделенный сотрудник (сотрудники), чья работа заключается в том, чтобы работать с базой данных и повышать производительность, а также следить за тем, чтобы изменения в приложении не вызывали поломку схемы в течение всего срока службы базы данных. Метрики о состоянии и состоянии базы данных тщательно контролируются. Для понимания и выполнения оптимизаций требуется значительный опыт.

  • Очень большой: база данных хранит огромное количество информации, которая должна быть легко доступна. Оптимизация производительности абсолютно необходима для того, чтобы выжать каждую последнюю унцию скорости из каждого запроса, и без этого база данных была бы гораздо менее удобной или даже недоступной для использования. База данных может использовать сложные или инновационные методы репликации или кластеризации, расширяющие границы современной технологии.

Обратите внимание, что они являются полностью субъективными, и что кто-то вполне может иметь совершенно законное альтернативное определение "большого".

27 голосов
/ 15 марта 2009

Один из способов выяснить это, наблюдая за вашими тестовыми запросами.

В небольшой базе данных индексы не имеют значения.

Средняя база данных - это база данных, в которой запросы занимают более одной секунды, если у вас нет соответствующего индекса.

Большая база данных - это база данных, в которой запросам часто требуются часы для оптимизации с использованием комбинации дизайна запросов, модификации индекса и множества циклов тестирования.

4 голосов
/ 15 марта 2009

Лучший ответ, проще говоря: большие базы данных - это те, которые заставляют вас отказаться от использования реляционных баз данных.

Другими словами, нормализованная реляционная база данных, в которой все индексы в мире не могут помочь вам удовлетворить ваши требования времени отклика из-за огромных объединений.

Если вам когда-либо приходилось отказываться от реляционных баз данных для чего-то другого, вы либо плохой разработчик баз данных, либо не имеете опытного администратора баз данных, либо имеете очень большую базу данных.

3 голосов
/ 15 марта 2009

Вы должны учитывать аппаратное продвижение для этого определения:

  1. Небольшая база данных: рабочий набор помещается в физическую оперативную память отдельного обычного сервера (сейчас около 16 ГБ)

  2. Средняя база данных: помещается в один или несколько (через RAID) обычных жестких дисков на одной машине (до нескольких ТБ сейчас)

  3. Большая база данных: данные должны быть распределены по нескольким обычным серверам, чтобы соответствовать (до нескольких PB сейчас).

3 голосов
/ 15 марта 2009

«Большая база данных» - это действительно туманное понятие. Уже есть очень разные ответы и мнения, размещенные в ответах на этот вопрос. Некоторые подходы к определению «малых», «средних» и «больших» баз данных могут иметь больше смысла, чем другие, НО ПОТОМ, в какой-то момент я считаю, что каждое определение является правильным, истинным и действительным.

Некоторые определения имеют больше смысла, чем другие, потому что они сосредоточены на различных аспектах, важных для проектирования, программирования, использования, обслуживания и администрирования базы данных, и эти различные аспекты действительно важны для используемой базы данных. Просто случается так, что на все эти аспекты влияет туманная концепция «Размер базы данных».

Итак, означает ли это, что не имеет значения, можете ли вы определить, является ли конкретная База данных большой или нет?

Конечно, нет. Это означает, что вы будете применять эту концепцию по-разному при оценке различных проектных / операционных / административных аспектов вашей базы данных. Это также означает, что каждый раз эта концепция будет туманной.

В качестве примера: на стратегию индекса базы данных (аспект разработки базы данных) влияет количество записей для каждой таблицы (мера «размера»), размер записи, умноженный на количество записей (еще одна мера «размера»), и по запросу Vs. Соотношение операций создания / обновления / удаления (аспект использования базы данных).

Время ответа на запрос лучше, если индексы используются для таблиц с большим количеством записей. В зависимости от характера ваших предложений WHERE, ORDER BY и агрегации записей может потребоваться несколько индексов для определенных таблиц.

Операции создания, обновления и удаления оказали негативное влияние при увеличении количества индексов в соответствующих таблицах. Больше индексов для уязвимой таблицы означает больше изменений, которые должна выполнить СУБД, тратя больше времени и ресурсов для применения этих изменений.

Кроме того, если ваша СУБД тратит больше времени для применения этих изменений, то блокировки сохраняются и в течение более длительного времени, что влияет на время ответа других запросов, отправляемых в систему одновременно.

Итак, как вы балансируете количество и дизайн ваших индексов? Как узнать, нужен ли вам дополнительный индекс, и, добавив этот индекс, вы не окажете большого негативного влияния на время ответа на запрос? Ответ: вы тестируете и профилируете свою базу данных в соответствии с целевой нагрузкой в ​​соответствии с вашими требованиями к нагрузке / производительности и анализируете данные профилирования, чтобы определить, нужны ли дальнейшие оптимизации / редизайны / индексы.

Для разных запросов требуются разные стратегии индекса. Соотношения операций создания / обновления / удаления. Если ваша База данных находится под большой нагрузкой запросов, но редко обновляется, производительность для всего приложения будет лучше, если вы добавите каждый индекс, который улучшает время ответа на запрос. С другой стороны, если ваша База данных постоянно обновляется, но при этом не выполняются большие операции с запросами, производительность будет выше, если вы будете использовать меньше индексов.

Существуют и другие аспекты курса: проектирование схемы базы данных, стратегия хранения, проектирование сети, стратегия резервного копирования, хранимые процедуры / триггеры / и т. Д. программирование, прикладное программирование (по отношению к базе данных) и т. д. На все эти аспекты по-разному влияют различные понятия «размер» (размер записи, количество записей, размер индекса, количество индексов, дизайн схемы, размер хранилища и т. д.).

Мне бы хотелось иметь больше времени, потому что эта тема увлекательна. Я надеюсь, что этот небольшой вклад послужит вам отправной точкой в ​​этом увлекательном мире SQL.

2 голосов
/ 15 марта 2009

Согласно статье в Википедии Очень большая база данных

Очень большая база данных, или VLDB, - это база данных, которая содержит чрезвычайно большое количество кортежей (строк базы данных) или занимает очень большое пространство хранения физической файловой системы. Наиболее распространенное определение VLDB - это база данных, которая занимает более 1 терабайта или содержит несколько миллиардов строк, хотя, естественно, это определение со временем меняется.

0 голосов
/ 16 марта 2009

Если у вас есть база данных, которая достаточно велика, и вы не можете просто «создать ее резервную копию» для установки на тестовую или тестовую площадку, скорее всего, у вас есть «большая база данных».

0 голосов
/ 15 марта 2009

Я думаю, что-то вроде википедии или данных переписи населения США - это «большая» база данных. Мои личные списки адресов или задачи - это небольшая база данных. База данных среднего размера - нечто среднее.

Вы можете попытаться определить размеры по количеству необходимых вам серверов. Небольшая база данных - это компонент приложения, которое вы запускаете на своем рабочем столе, база данных среднего размера будет где-то одним сервером mysql (что угодно), а для большой базы данных потребуется несколько серверов с некоторой поддержкой репликации / отработки отказа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...