sql >> データベース >  >> RDS >> Mysql

MySQLデータベースの履歴データのベストプラクティス

    「大きな」テーブルとパフォーマンスについて心配するのはよくある間違いです。インデックスを使用してデータにアクセスできる場合は、1000000レコードが1000あるかどうかは問題ではありません。少なくとも、測定できるほどではありません。あなたが言及するデザインは一般的に使用されています。これは、時間がビジネスロジックの重要な部分である優れた設計です。

    たとえば、クライアントが注文した時点での商品の価格を知りたい場合は、valid_fromorder_dateのいずれかである製品レコードを検索できることがはるかに簡単な解決策です。

    これは常に当てはまるわけではありません。アーカイブ目的でのみデータを保持している場合は、アーカイブテーブルを作成する方が理にかなっている場合があります。ただし、時間が本当にであることを確認する必要があります ビジネスロジックの一部ではありません。そうしないと、複数のテーブルを検索する際の苦痛が大きくなります。注文した時点での製品の価格を確認するたびに、productテーブルまたはproduct_archiveテーブルのいずれかを検索する必要があることを想像してください。 。



    1. Mysqlのidを使用してテーブルから多くの行を削除します

    2. SQLで複数のテーブルを結合する

    3. 適切なデータベースパフォーマンス監視ツールを使用していますか?

    4. データ移行