powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что лучше, несколько мелких таблиц или одна крупная?
23 сообщений из 23, страница 1 из 1
Что лучше, несколько мелких таблиц или одна крупная?
    #36382394
freelander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые пользователи форума! Помогите советом. Проектирую базу данных на MySQL, задался простым, но очень важным вопросом - что лучше, одна большая таблица или много маленьких? (с точки зрения дальнейшей обработки и пр.). Допустим есть данные их можно поместить в 1 таблицу 100 000 записей или в 100 по 1000 или в 10 по 10000. Будет стандартная работа с базой: добавление, удаление, несложный поиск в ней.
И еще, скажите пожалуйста сколько записей в таблице в MySQL максимально допустимо?
Спасибо большое, жду ответов от знающих людей.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36382426
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитай про нормализацию
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36382458
freelander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneпочитай про нормализацию

а если не отправлять к "мануалам", а просто сказать свое экспертное мнение? ведь для этого и существуют форумы.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36382481
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про MySQL отправляйся в соответствующий форум.

ИМХО, нормализация тут не при чём. Речь идёт о секционировании таблиц. Размер таблицы должен быть таким, чтобы таблицей можно было пользоваться (манипулировать записями, обслуживать, резервировать и пр.) в установленные регламентом сроки. Ну и естественно таблица должна отвечать ограничениям платформы и СУБД.

Положим, если для резервирования данных ты используешь Blu-Ray, то делать таблицу которая займёт больше 50GB неразумно. Ты не сможешь создать её резервную копию на одном диске. Если данных больше 50GB, нужно разложить их в несколько таблиц размером по 50GB и резервировать их поочереди.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36382559
freelander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смысл в том что есть однотипные записи их можно хранить в одной таблице или в нескольких, потому что логически записи будут большими группами. есть ли смысл эти записи делить на таблицы по этим группам, простой пример есть записи допустим по городам, стоит ли делать для каждого города отдельную таблицу если для каждого такого города будет по 10 000 записей. То есть для 10 городов 100 000записай, но вобще городов может быть больше 10 например 40 или 50. Более всего важна именно выборка из таблиц, поиск второстепенная задача и не особо важен Или все записи в том числе из разных городов слоить в одну кучу, или раскидать по отдельным таблицам.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36382578
freelander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотел еще добавить, что про нормализацию речи не идет, меня интересует вопрос именно с физической точки зрения - скорость выборки главное .
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36382582
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freelander...логически записи будут большими группами...

вот и подумайте над этим. а то сразу секционирование и тд и тп
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36382666
freelander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Города я просто так привел, как бы логически если делить. но смысл не в том. Есть объем данных которому не нужна нормализация и так далее. Добавление новых данных и прочее мы сейчас не рассматриваем. Есть объем данных, положим он не меняется. мне нужно выбирать массивы данных из этого набора. где это быстрее будет происходить из таблицы размерностью 100 000 записей, или из 10 таблиц размерностью 10 000 записей.

Важное замечание: выборка всегда только из ОДНОЙ таблицы. То есть если я делю на 10 то выбирать мне нужно будет только из одной, мне известной таблицы. А не из нескольких. По сути вопрос сводиться к тому откуда будет выборка быстрее из большой или из маленькой таблицы. Ответ очевиден, из маленькой, но мне важна именно разница скоростей, на сколько она будет существенна, или наоборот пренебрежительно мала. Интересует именно если таблица будет довольно таки большой в 300 000 тыщ записей.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36382780
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нарушение 3нф - один из смертных грехов.
оправдания не существует
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36382800
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freelander,

На ваш вопрос нельзя однозначно ответить. Ответ зависит от многого, например, от характера данных, от SQL-запроса, от объема выборки, от имеющихся индексов, от системных ресурсов.
Вобщем-то, даже ваше "откуда будет выборка быстрее из большой или из маленькой таблицы. Ответ очевиден, из маленькой" не всегда верно.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36383012
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freelander wrote:

> а если не отправлять к "мануалам", а просто сказать свое экспертное
> мнение? ведь для этого и существуют форумы.

Говорю тебе своё экспертное мнение:

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

Как делать второе -- тебе уже подсказали.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36383017
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freelander wrote:

> Смысл в том что есть однотипные записи их можно хранить в одной таблице
> или в нескольких, потому что логически записи будут большими группами.
> есть ли смысл эти записи делить на таблицы по этим группам, простой
> пример есть записи допустим по городам, стоит ли делать для каждого
> города отдельную таблицу если для каждого такого города будет по 10 000
> записей. То есть для 10 городов 100 000записай, но вобще городов может
> быть больше 10 например 40 или 50.

Это -- уже гораздо более другой вопрос.

Нет, не стоит, если ты не делаешь VLDB. А если ты делаешь VLDB,
то её не стоит делать на MySQL и там уже этого не нужно делать
по другим причинам: там поддерживается партицирование таблиц.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36383050
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freelanderно мне важна именно разница скоростей, на сколько она будет существенна, или наоборот пренебрежительно мала.

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

Но если для поиска использовать индекс, положим BTree, то скорость такого запроса будет очень слабо зависеть от числа записей - хоть 10, хоть 10000000 - скорость уменьшается на 1 при увеличении числа записей в 10 раз. Такой запрос выполняется за доли секунды.

Если использовать хэш, то скорость от числа записей вообще почти не зависит.

Но как бы заявленные цифры порядка 100000 это совсем не много и что то партиционировать скорее всего не нужно.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36387739
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос мой прост и краток, промолвил носорог:
что лучше - сорок пяток или пяток сорок
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36390782
GrayStrannik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freelanderПроектирую базу данных на MySQL, задался простым, но очень важным вопросом - что лучше, одна большая таблица или много маленьких? 100 тыс. записей - это маленькая таблица. Поэтому Вам без разницы. А вообще конкретно для MySQL это сильно зависит от. Если по таблице идут обновления, то несколько таблиц будут работать быстрее, чем одна из-за особенностей записи. В других СУБД и в InnoDB размер таблицы без разницы до тех пор, пока у Вас нет 100 запросов в секунду. При б о льших нагрузках несколько таблиц можно разнести на разные диски или разные сервера, одна же таблица приведёт к перегрузке сервера или покупке гораздо большего сервера. Помните: один большой сервер обычно значительно дороже четырёх равных ему по мощности маленьких.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36390923
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrayStrannikПомните: один большой сервер обычно значительно дороже четырёх равных ему по мощности маленьких.

Только заставить четыре маленьких работать вместе так же быстро, как работает один большой практически нереально даже тчательно затачивая приложение на работу с кластером. Так что в пересчёте на пресловутый TFLOPS или TPS за K$, включая расходы на разработку кластерного приложения один большой может оказаться дешевле.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36391205
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabТолько заставить четыре маленьких работать вместе так же быстро, как работает один большой практически нереально даже тчательно затачивая приложение на работу с кластером. Так что в пересчёте на пресловутый TFLOPS или TPS за K$, включая расходы на разработку кластерного приложения один большой может оказаться дешевле.При условиях, означенных ТС (для каждого запроса точно изчестно, из какой таблицы нужно выбирать данные), вполне реально.

А о кластере ни у ТС, ни у GrayStrannik разговора не было - понятно, что такие решения совсем не оптимальные.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36394090
GrayStrannik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabТолько заставить четыре маленьких работать вместе так же быстро, как работает один большой практически нереально даже тчательно затачивая приложение на работу с кластером. Так что в пересчёте на пресловутый TFLOPS или TPS за K$, включая расходы на разработку кластерного приложения один большой может оказаться дешевле.Про кластер речи даже не шло - кластер хорош именно для больших таблиц и в качестве fileover. Речь про распределённую систему обработки данных. Но согласен - дополнительные расходы на маршрутизацию запросов чуть производительности съедят. Кроме того, всё хорошо до тех пор, пока не появляется запрос, которому нужны данные с двух машинок.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #36396760
Esu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если те объемы что указаны в примере того же порядка что и в продакшн то я бы не думал по поводу разбиения.

Но это абстрактно... В большинстве случаев так, возможно у вас какой-то уникальный
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Что лучше, несколько мелких таблиц или одна крупная?
    #39451234
AALLXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, в поддержку автора чуть более конкретный пример...

было 3 таблицы по 35, 47, и 25 млн записей соответственно. Все на mySQL. выборка по полю дата + id. Таблицы не обновляются, по сути - это архив данных.
Поля для выборки проиндексированны. выборка всегда за конкретный день или период. Разбил все на 30 таблиц примерно по 2-3 млн записей.

И вот сижу смотрю на хостинге графики нагрузки на БД и понимаю, что она стала больше(как мне кажется) хотя я ожидал, что будет меньше. Количество запросов тоже, таблицы меньше, по-моему должно стать меньше... или я чет не понимаю..

есть ли смысл их дробить вообще?..
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #39451308
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть ли смысл их дробить вообще?.. Дробление должно снизить нагрузку на диск и проц. По идее.
Но все сильно зависит от ситуации. Ожидаемого эффекта (ускорение отклика) может и не быть.
Сильное дробление усложняет подготовку запроса, т.к. надо решить, откуда запрашивать. Переделка логики может потребовать переразбивки по другим правилам.
И вообще изменение структуры таблиц из-за смены бизнес-логики - штука нежелательная.
Разбивка сильно усложняет репликацию данных (любыми средствами).

Кароч идеального рецепта нет и не будет. Только интуиция.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #39451541
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AALLXXбыло 3 таблицы по 35, 47, и 25 млн записей соответственно. Все на mySQL. выборка по полю дата + id. Таблицы не обновляются, по сути - это архив данных.
Поля для выборки проиндексированны.
Исходя из логики - смысла дробить не было никакого. Размеры небольшие. Учитывая индекс все должно шуршать быстро.
...
Рейтинг: 0 / 0
Что лучше, несколько мелких таблиц или одна крупная?
    #39451922
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AALLXX ...Разбил все на 30 таблиц примерно по 2-3 млн записей.
... смотрю на хостинге графики нагрузки на БД и понимаю, что она стала больше...
Запросы к 30 таблицам, скорее всего динамические, т.к. надо включить в select название нужной таблицы.
Добавляются затраты на компиляцию запроса.
К одной таблице можно использовать предварительно откомпилированный запрос (параметризованный или ХП).
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что лучше, несколько мелких таблиц или одна крупная?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]