2014-02-18 5 views
1

Мы запустили наш сайт несколько преждевременно и получили некоторые неприятные проблемы с производительностью. Я профессионал MS SQL Server по профессии, но мне было поручено настроить эту базу данных MySQL. Насколько я понимаю, базы данных MyISAM не имеют блокировки на уровне строк и блокируют всю таблицу, если вы редактируете данные. Может кто-то подтвердить или опровергнуть мои предположения ....CS-Cart 4 Проблемы с работой сайта. Может ли кэширование db быть виновником?

Мы потратили много денег на Google Adwords и смогли генерировать «бесполезный» трафик на сайт ... но в то же время, у нас есть сотрудники дома, которые загружают сайт новыми продуктами в течение дня. Вечером, когда никто ничего не вводит, я видел загрузку сайта примерно 2-3 секунды. Но когда есть люди, время загрузки падает до 8-9 ... иногда 10+ секунд для загрузки.

Кроме того, недавно мы включили кеширование cs-cart из «файла» в «mysql» .. эта таблица, по-видимому, также является MyISAM ... может ли это повлиять на производительность, так как по своей природе вы будете писать эта таблица часто.

ответ

0
As I understand MyISAM databases do not have row level locking and will lock up the entire table if you're editing data. Can someone please confirm or deny my assumptions.... 

Вы правы. MyISAM имеет только блокировку уровня таблицы. InnoDB поддерживает блокировки на уровне строк.

Действительно, время ожидания блокировки может быть значительным, если есть много параллельных пользователей, которые получают доступ к таблицам MyISAM. Но чтобы доказать/опровергнуть, что вам нужно собрать все запросы в медленном журнале (установите long_query_time на 0) и просмотрите журнал с помощью pt-query-digest. Затем вы увидите, что MySQL проводит большую часть своего времени. Таким образом, решение может быть проще найти.