1

これは、データベースを管理するための最善の方法に関する一般的な質問です。

私はMYSQLデータベースを持っており、毎日のイベント、ユーザーアクティビティ、および毎日のイベントの選択によってユーザーによって定期的に更新されます。これは数年前から実行されており、古いイベントやアクティビティをアーカイブするのがおそらく最善だと思いました。

これはいい考えですか?アーカイブのベストプラクティスは何ですか?データベースを台無しにすることなくどのように達成できますか?テーブルが保持しているデータが多すぎる可能性があることを心配する必要がありますか?テーブルフィールドの一意のIDが高くなりすぎる場合がありますか?

私が知っている質問はたくさんありますが、これらの質問への回答、またはYouTubeやFacebookなどのサイトがこの問題にどのように取り組んでいるかについての情報をいただければ幸いです。

ありがとう :)

4

1 に答える 1

1

パフォーマンスの問題を恐れている、または経験している場合は、ANALYZE、REINDEXなどのメンテナンスクエリの実行を検討できます。

本当にデータをアーカイブしたい場合は、スケジュールされたタスク/ cronジョブを実行して、すべての未使用のアイテム(つまり、xxxxより古いもの)を「アーカイブ」テーブル内に配置できます。読み取り専用テーブルと圧縮テーブルを定義してデータスペースの使用を最適化できるARCHIVEMysqlエンジンを使用することもできます。

テーブルを複数の「サブテーブル」に分割するためにテーブルをパーティション分割するオプションもあります。サブテーブルは、異なるディレクトリ/ドライブに配置できます。

とにかく、あなたがあなたの正確な問題が何であるかを教えてくれなかったので、私は他の解決策よりも多くの解決策を推薦することができませんでした(もしあれば!)。もっとお手伝いできるかどうか教えてください。

auto_incrementフィールドについては、auto_increment列タイプで許可されている最大値に達すると、IDが高くなりすぎます。何を入れましたか?INT?BIGINT?それらは非常に高い値を許可します

于 2012-10-13T14:12:15.257 に答える