2014-01-21 4 views
0

Привет, недавно я столкнулся с ситуацией, когда меня попросили оптимизировать модель данных для одного из наших клиентов, поскольку там уже разработан и запущен продукт. Основной причиной этого упражнения является то, что продукт страдает от медленной производительности слишком много блокировок и слишком много медленных запросов. Поскольку я не являюсь администратором баз данных, глядя на первый сайт на модель данных и выполняя некоторую трассировку запросов, я понимаю, что вся модель данных страдает от неправильного дизайна и хранения. База данных MySQl 5.6, и мы используем движок InnoDB.Устранение неисправностей моделирования баз данных

Я хочу знать, что есть какой-либо инструмент, который может анализировать всю модель данных и может указывать на возможные проблемы, включая определения структуры данных, индексы и другие материалы? Я пробовал много инструментов для профилирования, включая Mysql Workbench, Mysql Enterprise Monitor (платная версия), струйный профайлер, но все они, похоже, ограничены только поиском медленных запросов. Меня интересует инструмент, который может анализировать существующую модель данных и сообщать о проблемах с ней и возможные решения для нее.

ответ

0

Вы не можете рассматривать модель данных отдельно. Вам необходимо рассмотреть модель данных вместе с требованиями и фактическими шаблонами доступа к данным/обновления.

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

И данные шаблонов доступа/обновления я имею в виду, например:

  • высокие против низкого пга параллельного доступа
  • основном читает или обновление?
  • Single запись читает против чтения большого факса записей сразу
  • доступа равномерно распределяется в течение дня или навалом в определенное время
  • произвольный доступ (каждая запись, скорее всего, будет выбран или изменен) против основном недавним записи
  • Используются ли все таблицы одинаково или некоторые из них более используются, чем другие
  • Все столбцы всех таблиц читаются сразу? Или существуют кластеры столбцов, которые используются вместе?
  • Какие таблицы часто используются вместе?
0

Самые медленные запросы - это самое важное. Покажите нам несколько из них, вместе с SHOW CREATE TABLE, EXPLAIN, и насколько велики таблицы.

Кроме того, сколько запросов в секунду вы используете?

SHOW VARIABLES LIKE '% buffer%';

+0

Извините, ребята, я понимаю, что, не глядя на то, что действительно происходит, трудно сказать. Но его уверенная и я не могу поделиться с вами моделью DB.NDA! –

0

Нет таких инструментов, как те, которые вы ищете, поэтому, я думаю, вам придется делать домашнее задание, предлагая другую модель данных, которая «следует правилам».

Вы можете начать знакомство с first three normal forms.

Вы также можете попытаться обнаружить антипаттерны SQL (есть книги, рассказывающие об этом) в вашей базе данных. Это должно дать вам некоторые рекомендации для работы.

+1

Пожалуйста, не отменяйте изменения, чтобы удалить ссылки на загрузочные электронные книги: http://meta.stackexchange.com/questions/226326/should-we-add-it-ebooks-info-to-the-stack-overflow-url-blacklist –

+0

Ну, пожалуйста, не стесняйтесь, но я лучше подавить коммерческую ссылку на амазонку. –

Смежные вопросы