0

サーバーに問題があり、改善する必要があります。

まず、2 時間ごとに、約 100 万件の結果 (すべてのテーブル) を MyISAM テーブルに挿入/更新/削除します。この間、Web サイトからテーブルにアクセスできる必要があります。

月に1回程度、サイトが表示されず「データベースに接続できません」と表示されます。サーバーを再起動すると、このテーブルを修復する必要があることがわかります。

テーブルが「壊れる」のを防ぐ方法や、自動的に修復する方法はありますか? エンジンを innoDB に変更する必要がありますか? なんで?

第二に、この操作中、私のサイトは非常に遅く、このテーブルの結果を表示するのはページだけではありません。

私は自分のサーバーに完全にアクセスできますが、何を探しているのかわかりません... 操作はナイス 19 の cron ジョブです。

バックグラウンドで何をしていても、ウェブサイトを同じ速度にしたい. 私が実行する操作は実行に約 1 時間かかりますが、それ以上かかっても問題ありません。

4

1 に答える 1

0

操作はナイス 19 の cron ジョブです。

低い優先度でジョブを実行してもあまり意味がありません。

2時間ごとに、約100万件の結果を挿入/更新/削除します(これはすべてのテーブルです)

これは大量のデータです。システムの能力の限界を押し広げています。問題を解決する方法については.... innodb を使用するのに実際にどれくらいの労力がかかるでしょうか? 私見は、ここに投稿するよりも少なく、回答を待って試してみてください。

テーブルのシャドウ コピーに対して cron ジョブを実行し、フロント エンドがアクセスするテーブルの代わりにそれを交換するなど、他にも多くのことを試すことができます (ただし、これだけでは破損の問題は解決しません)。

確かに、MyISAM テーブルに対して多くの削除を実行する際に問題が発生しました。

問題を解決するには多くの方法があると思いますが、なぜそんなに高いデータ回転率が必要なのかについてはあまり説明していません。変更しているすべてのレコードの詳細をユーザーが見ているとは思えないので、データがデータベースにヒットする前にデータを統合することが最大のメリットになると思います。

この表の結果を表示するのはページだけではありません。

cron ジョブとフロント エンド URL を介した高速ターンオーバー データへのアクセスを無効にしても? それはまったく別の問題です。

于 2012-05-16T22:43:24.077 に答える