Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Neo4j - Cypher . का उपयोग करके एक इंडेक्स बनाएं

एक सूचकांक एक डेटा संरचना है जो डेटाबेस में डेटा पुनर्प्राप्ति संचालन की गति में सुधार करती है।

Neo4j में, आप किसी भी नोड पर एक संपत्ति पर एक इंडेक्स बना सकते हैं जिसे एक लेबल दिया गया है। एक बार जब आप एक इंडेक्स बना लेते हैं, तो Neo4j इसे प्रबंधित करेगा और जब भी डेटाबेस बदलेगा तो इसे अपडेट रखेगा।

अनुक्रमणिका बनाने के लिए, CREATE INDEX ON . का उपयोग करें बयान। इस तरह:

CREATE INDEX ON :Album(Name)

उपरोक्त उदाहरण में, हम नाम . पर एक अनुक्रमणिका बनाते हैं एल्बम . के साथ सभी नोड्स की संपत्ति लेबल।

जब कथन सफल होता है, तो निम्न संदेश प्रदर्शित होता है:

जब आप एक इंडेक्स बनाते हैं, तो Neo4j बैकग्राउंड में इंडेक्स बनाएगा। यदि आपका डेटाबेस बड़ा है, तो इसमें कुछ समय लग सकता है।

केवल जब Neo4j ने अनुक्रमणिका बनाना समाप्त कर लिया है, तो इसे ऑनलाइन लाया जाएगा, और इसका उपयोग प्रश्नों में किया जा सकता है।

सूचकांक देखें

इंडेक्स (और बाधाएं) (वैकल्पिक) डेटाबेस स्कीमा का हिस्सा बन जाते हैं।

Neo4j ब्राउज़र में, आप :schema . का उपयोग करके सभी इंडेक्स और बाधाओं की समीक्षा कर सकते हैं आदेश।

बस इसे टाइप करें:

:schema

आप किसी भी अनुक्रमणिका और बाधाओं की सूची देखेंगे:

सूचकांक संकेत

एक बार एक इंडेक्स बन जाने के बाद, जब आप प्रासंगिक क्वेरी करते हैं तो इसका स्वचालित रूप से उपयोग किया जाएगा।

हालाँकि, Neo4j आपको संकेत के साथ एक या अधिक अनुक्रमणिका लागू करने की अनुमति देता है। आप USING INDEX ... . को शामिल करके एक इंडेक्स हिंट बना सकते हैं आपकी क्वेरी में।

इसलिए हम ऊपर दिए गए इंडेक्स को इस तरह लागू कर सकते हैं:

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

आप कई संकेत भी प्रदान कर सकते हैं। बस एक नया USING INDEX add जोड़ें प्रत्येक अनुक्रमणिका के लिए जिसे आप लागू करना चाहते हैं।

इंडेक्स करें या इंडेक्स न करें?

जब Neo4j एक इंडेक्स बनाता है, तो यह डेटाबेस में डेटा की एक बेमानी कॉपी बनाता है। इसलिए अनुक्रमणिका का उपयोग करने से अधिक डिस्क स्थान का उपयोग होगा, साथ ही डिस्क पर धीमी गति से लेखन होगा।

इसलिए, इंडेक्स करने के लिए कौन सा डेटा/गुण तय करते समय आपको इन कारकों को तौलना होगा।

आम तौर पर, जब आप जानते हैं कि कुछ नोड्स पर बहुत अधिक डेटा होने वाला है, तो एक इंडेक्स बनाना एक अच्छा विचार है। साथ ही, यदि आप पाते हैं कि प्रश्नों को वापस आने में बहुत अधिक समय लग रहा है, तो अनुक्रमणिका जोड़ने से मदद मिल सकती है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑफ़सेट+लिमिट के साथ mySQL क्वेरी में कुल नतीजों का पता लगाएं

  2. एक ही प्रश्न के साथ पुनरावर्ती श्रेणियां?

  3. MySQL और PHP:सिरिलिक वर्णों के साथ UTF-8

  4. MySQL तालिका में डुप्लिकेट कैसे हटाएं

  5. MySQL में एक खाली स्ट्रिंग डालने से रोकने के लिए एक बाधा