Плохой дизайн базы данных - моя таблица слишком большая? - PullRequest
3 голосов
/ 07 октября 2008

У меня плохо спроектированная база данных. В одной из самых важных таблиц более 11 000 записей. Мы хотели бы расширить нашу систему, и мне интересно, если бы эта таблица увеличилась в 5 раз, будет ли это проблемой? Размер 15360 кБ ... если это имеет значение.


Я использую phpMyAdmin, сервер является коробкой Fedora Linux (ничего особенного), загрузка невелика. Он хранит практически все, что использует наша система.

Ответы [ 14 ]

12 голосов
/ 07 октября 2008

Какая СУБД? Какой сервер? Какая нагрузка? Какое приложение?

Кроме того: 11.000 записей - ничто, правда. Даже в MS Access. : -)

EDIT: Поэтому я предполагаю, что вы используете сравнительно недавно MySQL с таблицами MyISAM. Теоретически, вы можете пойти дальше и заполнить таблицу миллионами записей. В зависимости от того, как вы работаете с ними (много соединений / или нет, много запросов / обновлений / удалений / или нет), вам не нужно делать ничего особенного. Положите правильный указатель на стол, и все будет в порядке.

8 голосов
/ 07 октября 2008

Я понимаю, что вы беспокоитесь, если увеличение количества записей до 55 000 в «вашей плохо спроектированной базе данных» повлияет на производительность.

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

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

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

5 голосов
/ 07 октября 2008

Не думаю, что вы предоставляете достаточно информации, чтобы кто-то мог дать ответ. Почему он плохо спроектирован? Разве это не нормализовано? У вас нет индексов? Что это за БД? На какой ОС он работает? Сколько времени теперь требуется для запроса записи из рассматриваемой таблицы?

4 голосов
/ 07 октября 2008

11к записей не так много. 50К тоже не велико.

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

Если дизайн достаточно скудный, вы можете посмотреть стоимость редизайна.

1 голос
/ 07 октября 2008

Вам нужно дать гораздо больше информации о структуре таблицы.

В целом, 15 000 строк в таблице будут считаться маленькими, а на самом деле настолько маленькими, что некоторые разработчики могут даже не потрудиться проиндексировать их.

1 голос
/ 07 октября 2008

11K записей, как правило, ничто в терминах базы данных.

Что еще заставляет вас думать, что база данных плохо спроектирована, кроме количества записей в одной таблице?

1 голос
/ 07 октября 2008

Вы действительно не предоставили никаких доказательств, подтверждающих ваше утверждение, что это плохо спроектированная база данных. Что делает его плохо спроектированным? таблица имеет 876 столбцов? Названы ли столбцы Col1, Col2, Col3 ...? Использует ли он float и datetime в качестве составного первичного ключа? Это плохо нормализуется? Единственное, о чем мы знаем, это количество записей.

1 голос
/ 07 октября 2008

15МБ это ничто. 11 тысяч строк. У меня есть базы данных с 2+ ГБ данных, а некоторые таблицы содержат более 1 миллиона строк, и я считаю, что они находятся где-то между малым и средним размером.

1 голос
/ 07 октября 2008

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

Возможно, вы захотите объяснить, почему вы считаете, что это плохо спроектированная база данных, и что вы можете (легко) сделать, чтобы исправить проблемы. Наряду с этим вы должны подробно описать тип СУБД и его использование (веб-приложение, пользовательское приложение, отчетность и т. Д.).

1 голос
/ 07 октября 2008

Что вы подразумеваете под «плохо спроектированной базой данных»?

Если он плохо спроектирован, перепроектируйте его, перетащите информацию из текущих таблиц и заполните новую.

Если вас беспокоит производительность, 11000 записей невелики. 15-мегабайтная база данных очень мала, по стандартам БД.

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