また、テスト環境と本番環境の間でそれらをどのように同期させますか?
データベーステーブルのインデックスに関しては、データベースをクエリするコードを作成する上で不可欠な部分であるというのが私の哲学です。インデックスへの影響を分析せずに、新しいクエリを導入したり、クエリを変更したりすることはできません。
そのため、すべての環境間でインデックスの同期を維持するために最善を尽くしていますが、正直なところ、これを自動化することはあまりうまくいっていません。これは一種の無計画な手動プロセスです。
定期的にインデックスの統計を確認し、不要なインデックスを削除します。私は通常、削除スクリプトを作成して、それを他の環境にコピーして戻すことでこれを行います。
しかし、あちこちでインデックスが作成され、通常のプロセスの外で削除され、違いがどこにあるかを確認するのは非常に困難です。
私が本当に役立つことの1つは、次のような単純な数値のインデックス名を使用することです。
idx_t_01
idx_t_02
ここで、tはテーブルの短い省略形です。関係するすべての列を巧みに利用しようとすると、インデックスのメンテナンスが不可能になります。
idx_c1_c2_c5_c9_c3_c11_5
そのようなインデックスを区別するのは難しすぎます。
インデックス管理をソース管理と開発ライフサイクルに統合するための本当に良い方法を持っている人はいますか?