Проектирование большой БД

 
0
 
MySQL
ava
Levsha | 24.09.2013, 20:51
Здравствуйте, Господа!

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

Ситуация следующая. Есть около 100 БД, со средним объемом около 70 МБ каждая.
В каждой БД есть две таблицы с одинаковой структурой, то есть отличаются только записи в БД, сама структура везде идентична.

Вот я и думаю, не будет ли эффективнее объединить все эти базы в одну большую, добавив отдельное поле с идентификатором старой базы (ну чтобы различать данные).

Как думаете?

И вообще, может для ускорения стоит перейти на другую бд, постгре например?
Comments (8)
ava
jsharp36 | 24.09.2013, 21:58 #
Странный вопрос. Базы у вас совсем маленькие по размерам. И тут два варианта. Если они по смыслу хранят одно и то же, если возможны запросы с данными, одновременно для разных баз - то необходимо правильно делать одну бд и одну структуру. Если же данные настолько независимы, то проблем с производительностью тоже - физически докупаются машины, раскладываются базы по ним. Как раз, когда оптимизируют - один из путей - суметь разбить данные на независимые куски и раскидать по машинам.
ava
Magistrus | 25.09.2013, 10:34 #
Цитата (Levsha @  24.9.2013,  19:51 findReferencedText)
С недавних пор стал сталкиваться с высокой нагрузкой Mysql на сервере, и думаю, как это дело оптимизировать.


А с чем именно связана высокая нагрузка выяснили?



ava
Levsha | 28.09.2013, 23:43 #
Цитата (Magistrus @  25.9.2013,  10:34 findReferencedText)
А с чем именно связана высокая нагрузка выяснили?

Да, смотрел на запросы, понижал их количество, отслеживал "долгие" запросы. Структура таблиц довольно примитивна, поэтому там уже нечего оптимизировать. А нагрузка возникает просто при большой посещаемости - примерно 20К в сутки.

Цитата (jsharp36 @  24.9.2013,  21:58 findReferencedText)
Странный вопрос. Базы у вас совсем маленькие по размерам.

Грубо говоря посещалка раскидана по 100 сайтам, и нагрузка идет параллельно по всем базам. Вот я и думаю, может я в корне не прав, и стоит это все объединить в одну базу. Ну видимо так и буду делать. 
ava
Сумасшедший | 29.09.2013, 20:15 #
А таки ключи, аки индексы окаянные, у вас присутствуют в нелишнем количестве?
ava
Akina | 30.09.2013, 08:15 #
Цитата (Levsha @  29.9.2013,  00:43 findReferencedText)
Грубо говоря посещалка раскидана по 100 сайтам, и нагрузка идет параллельно по всем базам. Вот я и думаю, может я в корне не прав, и стоит это все объединить в одну базу. Ну видимо так и буду делать.  

Пфф... так однозначно собрать в кучку. А поскольку юзер - существо предсказуемое, у тебя ещё и кэш запросов заработает как нужно.
ava
tishaishii | 30.09.2013, 20:16 #
Если БД разные и ими уже пользуются, то объединение 100БД в одну может стать сложной задачей.
Вот подумай: оно того стоит?

Помести БД в оперативку.
ava
Magistrus | 01.10.2013, 09:42 #
Уточните еще плиз, 1 сайт одна база? Или один сайт много баз?

Покажите структуру базы данных, с используемыми индексами.

Покажите запросы которые выполняются на этой базе.

Покажите настройки базы данных, проверте везде ли они одинаковые.

Если базы расположены на вэб хостинге, проверте ширину канала.

Оптимизация как правило кроется в мелочах, а как раз их и не хватает для оценки всей картины.
ava
Fortop | 01.10.2013, 20:56 #
Цитата (Levsha @  28.9.2013,  23:43 findReferencedText)
 А нагрузка возникает просто при большой посещаемости - примерно 20К в сутки. 

Смешные цифры. Мускуль держит на одном сервере миллионы запросов в сутки.

По-моему говорить вообще не о чем. Нет ни информации о базах, ни информации о запросах.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
advanced
Submit