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

Neo4j-Cypherを使用してインデックスを作成する

    インデックス は、データベースでのデータ取得操作の速度を向上させるデータ構造です。

    Neo4jでは、ラベルが付けられた任意のノードのプロパティにインデックスを作成できます。インデックスを作成すると、Neo4jがインデックスを管理し、データベースが変更されるたびに最新の状態に保ちます。

    インデックスを作成するには、CREATE INDEX ONを使用します 声明。このように:

    CREATE INDEX ON :Album(Name)

    上記の例では、 Name にインデックスを作成します Album を持つすべてのノードのプロパティ ラベル。

    ステートメントが成功すると、次のメッセージが表示されます。

    インデックスを作成すると、Neo4jはバックグラウンドでインデックスを作成します。データベースが大きい場合、これには時間がかかる場合があります。

    Neo4jがインデックスの作成を完了した場合にのみ、インデックスがオンラインになり、クエリで使用できるようになります。

    インデックスを表示

    インデックス(および制約)は、(オプションの)データベーススキーマの一部になります。

    Neo4jブラウザーでは、:schemaを使用して、すべてのインデックスと制約を確認できます。 コマンド。

    次のように入力するだけです:

    :schema

    インデックスと制約のリストが表示されます:

    インデックスのヒント

    インデックスが作成されると、関連するクエリを実行するときに自動的に使用されます。

    ただし、Neo4jでは、ヒントを使用して1つ以上のインデックスを適用することもできます。 USING INDEX ...を含めることで、インデックスヒントを作成できます。 クエリで。

    したがって、上記のインデックスを次のように適用できます。

    MATCH (a:Album {Name: "Somewhere in Time"}) 
    USING INDEX a:Album(Name) 
    RETURN a

    複数のヒントを提供することもできます。新しいUSING INDEXを追加するだけです 適用するインデックスごとに。

    インデックスを作成するか、インデックスを作成しないか?

    Neo4jがインデックスを作成すると、データベースにデータの冗長コピーが作成されます。したがって、インデックスを使用すると、使用されるディスクスペースが増え、ディスクへの書き込みが遅くなります。

    したがって、インデックスを作成するデータ/プロパティを決定する際には、これらの要素を比較検討する必要があります。

    一般に、特定のノードに大量のデータがあることがわかっている場合は、インデックスを作成することをお勧めします。また、クエリが返されるまでに時間がかかりすぎる場合は、インデックスを追加すると役立つ場合があります。


    1. MySQLルートパスワードをリセットする方法

    2. SQL ServerのDIFFERENCE()関数のしくみ

    3. 日付の間にmysqlクエリを選択しますか?

    4. 文字列がJSONであるかどうかをテストする方法は?