質問: ### レコードを再利用することは一般的なことでしょうか? MySQLでInnoDBを使ったテーブルでレコードに使用期限のカラムを追加するようにして、新たなデータの登録時に期限の切れているデータが存在した場合には、新規のレコードは作成せずに期限の切れたデータのレコードを上書きして再利用しようと思っています。 この方法は、このデータの使用期間が決まっているのと、データが毎日1,000件ペースで増えてしまうので、レコードの増加を抑えるために何とかしたいと思い考えました。 ただ...この様にレコードを上書きして再利用する方法は、一般的に行なっても問題のない方法なのでしょうか? それとも定期的に使用期限の来たデータをDELETEする方が良いのでしょうか? もし問題がなければ上書きをしたいと思っています。 削除も上書きもせずに済むなら良いのですが、他のテーブルのデータ増加が大きいので出来るだけデータ量を小さくしたいと思っています。 アドバイスをよろしくお願いいたします。 ### 補足情報 使用環境はMySQL5.6。ストレージエンジンは「InnoDB」を利用しています。 IDの採番は、別テーブルで管理しようと思っています。
回答: ・それとも定期的に使用期限の来たデータをDELETEする方が良いのでしょうか? やるとしてもこっちが普通かなと思います。 個人的には「データは資産」だと思っているのでデータの『削除』や『上書き』という行為に関して かなり拒否感があります。確かに「見積」としては見積期間が過ぎたら不要でしょうが 見積データ自体はほかのなにかに使える可能性が0ではありません。 なぜ「レコードの増加を抑えないといけないと思うのか」を質問内に記述した方がいいと思います。 MySQLは触ったこと無いんですが一般的にデータが増えようがインデックスが適正なら 1万件の中から1件探すのも1億件の中から1件探すのもほとんど変わりません。 そもそも文字データが毎日1000件積まれようがデータベース的な容量はあまり変わらないのでは? 他のデータの増加が大きいのであれば、データの増加が大きい方をなんとかすべきかと。