Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика


Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2021, 20:00   #1
vlad-55
Пользователь
 
Регистрация: 21.02.2009
Сообщений: 44
По умолчанию Какой должна быть база данных для самописной CMS?

Я сделал несложную CMS (чисто для пробы, а она оказалась вполне работоспособной), в которой вся пользовательская информация записывается в единую базу данных.

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

Как это делается на практике?

(Проект контентный)
vlad-55 вне форума Ответить с цитированием
Старый 11.12.2021, 20:06   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,505
По умолчанию

Цитата:
Сообщение от vlad-55 Посмотреть сообщение
база будет увеличиваться в размерах и ее работа замедляться
Это врят ли

Цитата:
для каждого раздела/подраздела была своя база?
не нужно
Alar вне форума Ответить с цитированием
Старый 11.12.2021, 20:09   #3
vlad-55
Пользователь
 
Регистрация: 21.02.2009
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
база будет увеличиваться в размерах и ее работа замедляться
Это врят ли
Не будет замедляться? Ведь база - это тоже файл. Открывать файл 10 Мегабайт и файл 10 Гигабайт - разве это одно и тоже по времени?
vlad-55 вне форума Ответить с цитированием
Старый 11.12.2021, 22:52   #4
Agency
Пользователь
 
Регистрация: 07.10.2017
Сообщений: 38
По умолчанию

Ну, если вы будете работать с чем-то вроде SQLite, тогда возможно что так и будет...
В более серьезных БД все несколько сложнее. Чтобы условный "размер" БД влиял на скорость обработки, которую вы сможете заметить, надо сделать кривоватую логику, написать неподъемные и тупые запросы. Тогда да, надо будет что-то с этим делать. Но лучше начать с оптимизации БД и запросов к ней, а не с тиражирования глупостей.

Последний раз редактировалось Agency; 11.12.2021 в 22:58.
Agency вне форума Ответить с цитированием
Старый 11.12.2021, 23:50   #5
HDService
 
Регистрация: 03.12.2021
Сообщений: 6
По умолчанию

Приветствую, коллеги!

Полагаю, что выбор СУБД должен быть произведен на основе принципа работы самого продукта. Как вы полагаете, CMS будет больше записывать или больше читать данных? Какой основной характер данных - тест / медиа? Какая "концепция" данных, возможно вам вообще NoSQL подойдет лучше? Как вы думаете ваш проект может подрасти до необходимости кластеризировать СУБД или необходимости шардирования? Как вы будете предоставлять высокую доступность?

Если проект уровня "петпроджект" юзайте смело SQLite или MySQL
Если продукт имеет шансы на "около HighLoad" - PostgeSQL / (MSSQL)
HDService вне форума Ответить с цитированием
Старый 11.01.2022, 16:19   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
Сообщение от vlad-55 Посмотреть сообщение
Не будет замедляться? Ведь база - это тоже файл. Открывать файл 10 Мегабайт и файл 10 Гигабайт - разве это одно и тоже по времени?
Всё немного сложнее. Даже если База находится в одном файле (например, *.fdb от Firebird), то все равно ее стоит рассматривать не как файл, а как каталог (контейнер с множеством таблиц, хранимых процедур, представлений и т.п). Скорость выполнения запроса зависит не столько от размера самой БД, сколько от количества записей в запрашиваемых таблицах, наличия в них индексированных полей и т.д. Другими словами, обращаясь к конкретной таблице мы обращаемся к определённому участку памяти внутри БД. Для этого не нужно открывать "файл" размером в 10 гигабайт.

У меня на работе некоторые БД размером 10-12 Гб., где таблицы по 5-7 млн. записей работают в сети без каких либо проблем.

Кстати, написать саму CMS не сложно. Сложно написать вменяемую защиту от хака.
Я при написании сайтов часто брал оболочку от какой-либо известной надёжной CMS в которой уже реализованы все права доступа, а модули писал сам внутри оболочки. Так спокойнее

Последний раз редактировалось _SERGEYX_; 12.01.2022 в 08:32.
_SERGEYX_ вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в самописной CMS Tatiana_Mikheyeva WordPress и другие CMS 5 04.09.2021 00:03
Какой должна быть внешняя политика РФ? Alar Свободное общение 21 28.12.2016 08:34
Postgres: может ли база данных дать отчет, какой язык используется в данных? Blondy SQL, базы данных 2 30.03.2014 05:25
Какой должна быть экономика в России? С.М.С Свободное общение 6 11.10.2011 17:16
Какой должна быть девушка пPограммиста??? БлОнДиНк@ Свободное общение 92 25.01.2010 11:31

Реклама для незарегистрированных, регистрация на форуме