Гаразд, тупе запитання, я знаю, але я бачу туманний коментар "велика база даних", а також малий і середній, і мені цікаво, що це означає. Хтось може визначити, що таке мала, середня та велика база даних для нас, SQL неофітів?
Гаразд, тупе запитання, я знаю, але я бачу туманний коментар "велика база даних", а також малий і середній, і мені цікаво, що це означає. Хтось може визначити, що таке мала, середня та велика база даних для нас, SQL неофітів?
Відповіді:
Не існує порогу, коли мала база даних стає середньою, або середня база даних стає великою. Як правило, коли я чую ці терміни, я думаю про певні порядки з точки зору загальної кількості збережених записів.
Як запропонував плакат dkretz , ви також можете подумати про це з точки зору властивостей кожного виду баз даних. Класифікуючи це таким чином, я б сказав:
Маленька: продуктивність не турбує. Ваші запити працюють нормально без особливих оптимізацій. Ви бачите лише незначну різницю в продуктивності при використанні вдосконалених програм, таких як індекси.
Середній: Ваша база даних, ймовірно, має одного або декількох співробітників, яким за сумісництвом призначено обслуговування та догляд. Ці люди звертають увагу на стан бази даних; їх основною адміністративною відповідальністю є запобігання неприйнятним проблемам роботи та мінімізація простоїв.
Великий: Ймовірно, є спеціаліст (и), чия робота полягає в роботі над базою даних та покращенні продуктивності, а також у тому, щоб зміни програм не спричиняли поломки схеми протягом усього терміну роботи бази даних. Показники стану здоров'я та стану бази даних ретельно контролюються. Для розуміння та проведення оптимізацій потрібні значні знання.
Дуже великий: база даних зберігає величезну кількість інформації, яка повинна бути легкодоступною. Оптимізація продуктивності абсолютно необхідна для віджимання кожної останньої унції швидкості кожного запиту, і без цього база даних була б набагато менш корисною або навіть неможливою для використання. База даних може використовувати складні або інноваційні методи реплікації або кластеризації, розсуваючи межі сучасних технологій.
Зауважте, що вони цілком суб’єктивні, і що хтось цілком може мати цілком законне альтернативне визначення поняття „великий”.
Один із способів зрозуміти це - спостерігаючи за вашими тестовими запитами.
Невелика база даних - це база даних, де індекси не мають значення.
Середня база даних - це та, де запити займають більше секунди, якщо у вас немає відповідного індексу.
Велика база даних - це та, де на оптимізацію запитів часто потрібні години, використовуючи комбінацію дизайну запиту, модифікації індексу та багатьох тестових циклів.
Великі бази даних - це такі, що змушують вас припинити використання реляційних баз даних.
Іншими словами, нормалізована реляційна база даних, де всі індекси у світі не можуть допомогти вам задовольнити вимоги до часу відгуку через масивні СПІЛКИ.
Якщо вам коли-небудь доводилося відмовлятися від реляційних баз даних заради чогось іншого, ви або поганий розробник баз даних, не маєте експертного DBA, або маєте дуже велику базу даних.
“Велика база даних” - справді туманне поняття. У відповідях на це питання вже є дуже різні відповіді та думки. Деякі підходи до визначення „малих”, „середніх” та „великих” баз даних можуть мати більше сенсу, ніж інші, АЛЕ ТО, у певний момент я вважаю, що кожне визначення є правильним, правдивим та дійсним.
Деякі визначення мають більше сенсу, ніж інші, оскільки вони зосереджуються на різних аспектах, важливих для проектування, програмування, використання, обслуговування та адміністрування бази даних, і ці різні аспекти є тим, що насправді має значення для придатної для використання бази даних. Просто трапляється, що на всі ці аспекти впливає туманна концепція «Розмір бази даних».
Отже, чи означає це, що неважливо, чи зможете ви визначити, чи є певна база даних великою чи ні?
Звичайно, ні. Це означає, що ви будете застосовувати концепцію по-різному, оцінюючи різні дизайнерські / оперативні / адміністративні аспекти своєї бази даних. Це також означає, що кожного разу ця концепція буде туманною.
Як приклад: на стратегію індексу бази даних (аспект дизайну бази даних) впливає кількість записів для кожної таблиці (міра “розміру”), розмір запису вмножений на кількість записів (інша міра “розміру”) та запит проти . Співвідношення операцій створення / оновлення / видалення (аспект використання бази даних).
Час відповіді на запит кращий, якщо індекси використовуються для таблиць із великою кількістю записів. Залежно від природи ваших пропозицій WHERE, ORDER BY та агрегування записів, вам може знадобитися кілька індексів для певних таблиць.
Операції створення, оновлення та видалення впливають негативно зі збільшенням кількості індексів у таблицях, що зазнали впливу. Більше індексів для зазначеної таблиці означає більше змін, які повинна виконувати СУБД, витрачаючи більше часу та більше ресурсів на застосування цих змін.
Крім того, якщо ваша СУБД витрачає більше часу на застосування цих змін, то блокування зберігаються і довший час, впливаючи на час відгуку інших запитів, що надсилаються в систему одночасно.
Отже, як ви збалансуєте кількість та дизайн своїх індексів? Як ви дізнаєтесь, чи потрібен вам додатковий індекс, і якщо, додавши цей індекс, ви не матимете значного негативного впливу на час відгуку запиту? Відповідь: Ви перевіряєте та профілюєте базу даних відповідно до цільового навантаження відповідно до ваших вимог до навантаження / продуктивності та аналізуєте дані профілювання, щоб виявити, чи потрібні подальші оптимізації / перепроектування / індекси.
Різні стратегії індексу потрібні для різних запитів проти. Створення / оновлення / видалення коефіцієнтів операцій. Якщо у Вашій Базі даних значне навантаження, але вона рідко оновлюється, продуктивність загальної програми буде кращою, якщо Ви додасте кожен індекс, що покращує час відгуку на запит. З іншого боку, якщо ваша база даних постійно оновлюється, але немає великих операцій запиту, то продуктивність буде кращою, якщо ви використовуєте менше індексів.
Звичайно, є й інші аспекти: дизайн схеми бази даних, стратегія зберігання, мережевий дизайн, стратегія резервного копіювання, збережені процедури / тригери / тощо. програмування, програмування додатків (проти бази даних) тощо. На всі ці аспекти по-різному впливають різні поняття "розмір" (розмір запису, кількість записів, розмір індексу, кількість індексів, дизайн схеми, розмір сховища тощо).
Я хотів би мати більше часу, оскільки ця тема захоплює. Сподіваюся, цей невеликий внесок послужить вам відправною точкою у цьому захоплюючому світі SQL.
Ви повинні врахувати просування апаратного забезпечення для цього визначення:
Невелика база даних: робочий набір вписується у фізичну оперативну пам’ять одного товарного сервера (близько 16 ГБ зараз)
Середня база даних: вміщується в один або кілька (за допомогою RAID) товарних жорстких дисків на одній машині (зараз до декількох ТБ)
Велика база даних: дані повинні розподілятися між кількома товарними серверами, щоб вмістити їх (до декількох ПБ зараз).
Відповідно до статті Вікіпедії про Дуже велику базу даних
Дуже велика база даних (VLDB) - це база даних, що містить надзвичайно велику кількість кортежів (рядків бази даних) або займає надзвичайно великий простір фізичної файлової системи. Найбільш поширеним визначенням VLDB є база даних, яка займає більше 1 терабайта або містить кілька мільярдів рядків, хоча, природно, це визначення змінюється з часом.
Я думаю, що щось на зразок Вікіпедії, або дані перепису США є "великою" базою даних. Мої списки персональних адрес або завдання - це невелика база даних. База даних середнього розміру - це щось середнє.
Ви можете спробувати визначити розміри, скільки вам потрібно серверів. Маленька база даних є компонентом програми, яку ви запускаєте на робочому столі, середня база даних буде десь одним сервером MySQL (незалежно), а велика база даних потребуватиме декількох серверів з якоюсь підтримкою реплікації / відмови.