索引を作成する最良の方法は次のうちどれですか?oracleの索引:
私のクエリは次のとおりです。原則としてcreate index emp_index on employees_table (emp_name,emp_last_name,salary);
で
select emp_name,emp_last_name, salary
from employees_table
where salary <=2000;
1. create index emp_index on employees_table (salary);
2. create index emp_index on employees_table (emp_name,emp_last_name,salary);
をカウントし、インデックスがあなたの意見や理由に優れている、あなたの意見は、何ですか? – krokodilko
私の意見では、インデックスがsalaryカラムでのみ作成された場合、sqlengineはsalaryフィールドにのみアクセスできますが、他のデータにアクセスするにはテーブルを検索する必要があるためです。 –
良い答えです。これらの2つのイデックスから、2番は1番よりも優れています。このようなインデックスは、[カバーインデックス](http://use-the-index-luke.com/sql/clustering/index-only-scan-covering-index)として知られています。しかし、この具体的なクエリのためのより良いオプション(3)があります。 - > 'employees_table(salary、emp_name、emp_last_name);でインデックスemp_indexを作成します。 #2と同じですが、列の順序だけが違うことに注意してください...なぜそれが良いのか分かりますか? – krokodilko