2016-12-23 4 views
0

私はSQL世界ではかなり新しいので、索引について多くのブログを検索しました。インデックステーブルの行を照会して表示する方法(MySql DBMS)

私は2つの質問を持っている:

1 - どのようにインデックステーブルから直接照会して選択し、その内容を表示するには? たとえば、テーブルAに2つのインデックス名A_index_1とA_index_2があるとします.iはselect * from A.A_index_2のような処理を行い、その内容を表示して実験します。

2秒の質問は、このlink 行へのより複雑one.accordingが複数列インデックスでソートされている、それは我々がこれを持っていると仮定し.now左端の列に非常に次の列が同様にソートされていることを主張しますこのような列のインデックス:

IDX1 on Table A : Country | Province | City | Street | Shop 

そして、同じ国、州、市を共有する行がたくさんあるとします。州は国のインデックスに隣接しているため、リンクも同様にソートされており、そのクエリのソート部分は無視されます(ノーオペレーション)ので、ここではselect * from A where Country='c' order By Province を照会します。今、私たちはこれを照会するとします。select * from A where Country='c' and Province='p' Order By City

の質問は次のとおりです。同じ地域での行の

、インデックス内の都市の列も同様にソートされていますか? となりますので、ソート部分は無視されますか?

この質問は、前の列の同じデータを持つ索引内の他の列を意味します。 OracleのDBと連携しながら、私が集まっているものは何でも知識と

+1

インデックスはSQLのファースト・クラス・オブジェクトではないため、必要なことはできません。また、あなたの質問は広すぎます。 –

答えて

0

、私は次のように言うことができます。

インデックス「から」クエリのようなものは何もありません。 'on'インデックスを照会することができます。

のは、あなたがテーブルを持っているとしましょう:

Col1 VARCHAR2(10) Col2 NUMBER Col3 DATE

そして、このテーブルはCol3にインデックスが作成されます。あなたは、インデックスを使用したい場合は、このような場合、クエリはwhereで使用されているインデックスにALL COLUMNSを提供し、あなたは結果をフィルタリングしているとき、インデックスが速くクエリに役立つので、基本的に

Col3上のデータをフィルタリングwhere句を、持っている必要がありますあなたの質問の句。

ので、クエリがインデックス使用する次:次のクエリは、そうではない

SELECT * FROM myTab WHERE Col3 BETWEEN TRUNC(SYSDATE -1) AND TRUNC(SYSDATE)

を:あなたは何を知っているときにのみ

SELECT * FROM myTab WHERE Col1 = 'Hello!'

を追加したい、インデックスは良いアイデアですやるつもりです。索引が多すぎると悪いことです。良い考えは、フィルタリングクエリ(クエリのWHERE句)で "FREQUENTLY"が使用されているカラムにインデックスを付けることです。

あなたの質問に投稿した内容は、partitionのようなものです。テーブルの論理空間はどれですか。私はそれ私の自己発見

SELECT * FROM myTab PARTITION(myPart);

+0

2番目の質問については、それは並べ替えると思います。誰かが一度、インデックスの列の順序も重要だと私に言った。それについてはわかりませんが、その部分を実験したことはありません。 –

+0

あなたの応答@ RogueCoderに感謝します。実際には、私の最初の質問は、2番目の質問を解決するように求められました.iは、インデックステーブルを掘り下げてその内容を見て、それを試してみる方法を探していました.DBMSが(n +1)番目の列がN番目の列と同じ内容の場合 –

0

:あなたはデータのいくつかの特定のセットを照会したいのであれば、あなたのような何かをします。

1-に従って、このlinkに、あなたは、インデックステーブルを視覚化することができますし、このようにそれを照会:インデックスの可視化

インデックスがサポートしている照会するものを理解するのに役立ちます。あなたは、クエリにインデックス定義とテーブル名を入れた場合は、インデックスからサンプルを取得するインデックス順

SELECT 'INDEX COLUMNS LIST' 
    FROM 'TABLE' 
ORDER BY 'INDEX COLUMNS LIST' 

内のエントリを取得するためのデータベースを照会することができます。

2 - マルチカラムインデックステーブルのリンクに従って、最も左のカラムから順に、テーブルがオーダーされます。一番左の列で同じ値を共有する行は、左から2番目の列に基づいて順序付けされ、最初と2番目の列で同じ値を共有する行は、左から3番目の列に基づいて順序付けされます。

関連する問題