1

サイトの立ち上げが少し時期尚早で、いくつかの厄介なパフォーマンスの問題に見舞われました。私は商売として MS SQL Server の専門家ですが、この MySQL データベースの調整を任されています。私が理解しているように、MyISAM データベースには行レベルのロックがなく、データを編集している場合はテーブル全体がロックされます。誰かが私の仮定を確認または否定できますか....

私たちは Google Adwords に多額の費用を費やし、サイトへの「無駄な」トラフィックを生成することができました... しかし同時に、社内スタッフが 1 日を通してサイトに新製品をロードしています. 誰も何も入力していない夕方には、サイトの読み込みが約 2 ~ 3 秒かかるのを見てきました。

また、最近、cs-cart キャッシングを「ファイル」から「mysql」に切り替えました。おそらく、このテーブルも MyISAM です。本来、このテーブルに頻繁に書き込むため、パフォーマンスに影響を与える可能性があります。

4

1 に答える 1

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 が最も多くの時間を費やしている場所を確認します。したがって、解決策を見つけやすいかもしれません。

于 2014-02-18T00:50:20.580 に答える