Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MySQL > Проектирование большой БД |
Автор: Levsha 24.9.2013, 19:51 |
Здравствуйте, Господа! С недавних пор стал сталкиваться с высокой нагрузкой Mysql на сервере, и думаю, как это дело оптимизировать. Ситуация следующая. Есть около 100 БД, со средним объемом около 70 МБ каждая. В каждой БД есть две таблицы с одинаковой структурой, то есть отличаются только записи в БД, сама структура везде идентична. Вот я и думаю, не будет ли эффективнее объединить все эти базы в одну большую, добавив отдельное поле с идентификатором старой базы (ну чтобы различать данные). Как думаете? И вообще, может для ускорения стоит перейти на другую бд, постгре например? |
Автор: jsharp36 24.9.2013, 21:58 |
Странный вопрос. Базы у вас совсем маленькие по размерам. И тут два варианта. Если они по смыслу хранят одно и то же, если возможны запросы с данными, одновременно для разных баз - то необходимо правильно делать одну бд и одну структуру. Если же данные настолько независимы, то проблем с производительностью тоже - физически докупаются машины, раскладываются базы по ним. Как раз, когда оптимизируют - один из путей - суметь разбить данные на независимые куски и раскидать по машинам. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//Проектирование-большой-БД-id5241c3aaae2015b762000000#findElement_E7045_5241e0f2ae201545040002f1_0 |
Автор: Levsha 28.9.2013, 23:43 |
Да, смотрел на запросы, понижал их количество, отслеживал "долгие" запросы. Структура таблиц довольно примитивна, поэтому там уже нечего оптимизировать. А нагрузка возникает просто при большой посещаемости - примерно 20К в сутки. Грубо говоря посещалка раскидана по 100 сайтам, и нагрузка идет параллельно по всем базам. Вот я и думаю, может я в корне не прав, и стоит это все объединить в одну базу. Ну видимо так и буду делать. |
Автор: Сумасшедший 29.9.2013, 20:15 |
А таки ключи, аки индексы окаянные, у вас присутствуют в нелишнем количестве? |
Автор: Akina 30.9.2013, 08:15 | ||
Пфф... так однозначно собрать в кучку. А поскольку юзер - существо предсказуемое, у тебя ещё и кэш запросов заработает как нужно. |
Автор: tishaishii 30.9.2013, 20:16 |
Если БД разные и ими уже пользуются, то объединение 100БД в одну может стать сложной задачей. Вот подумай: оно того стоит? Помести БД в оперативку. |
Автор: Magistrus 1.10.2013, 09:42 |
Уточните еще плиз, 1 сайт одна база? Или один сайт много баз? Если каждому сайту соотвествет только одна база, то проблему может состовлять только запрос к сразу нескольким базам данных. Покажите структуру базы данных, с используемыми индексами. Покажите запросы которые выполняются. Покажите настройки базы данных, проверте везде ли они одинаковые. Если базы расположены на вэб хостинге, проверте ширину канала. Оптимизация как правило кроется в мелочах, а как раз их и не хватает для оценки всей картины. |
Автор: Fortop 1.10.2013, 20:56 | ||
Смешные цифры. Мускуль держит на одном сервере миллионы запросов в сутки. По-моему говорить вообще не о чем. Нет ни информации о базах, ни информации о запросах. |