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

OracleでY/N列にインデックスを付ける方法

    Y / N比とは何ですか?レコードはY/Nおよび/またはN/Yから移動するように更新されていますか?その場合、これは定期的に発生しますか(例:在庫あり/在庫切れ/在庫あり/在庫切れ-在庫あり)または1回限り(未処理/処理済み)?

    エントリが混在していて、比率が均一である場合、インデックスが役立つ可能性はほとんどありません。

    パーティショニング(ライセンスがある場合)を使用して、YをNから分割できます。マテリアライズドビューまたはテーブルを2つのテーブルのUNION ALLビュー(おそらくINSTEAD OFトリガーを使用)にすると、YをNから分割することもできます。これらはすべて、更新処理にペナルティが発生します。

    列に更新アクティビティがあまりない場合は、ビットマップインデックスが適切な場合があります。

    CASE WHEN flag ='Y'then'Y'endに基づいて関数ベースのインデックスを作成できます。これにより、インデックスからN個の値が除外され、インデックスが大幅に小さくなります。



    1. 複数の異種データベース間で結合を実行します。 PostgreSQLとMySQL

    2. パラメータが入力されていない場合、where句の日付範囲パラメータを無視します

    3. MySQLテーブルをデータベースに復元する

    4. Kafka jdbc connect がデータを varchar ではなく BLOB として挿入する理由