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

क्या MySQL में फ़ंक्शन-आधारित अनुक्रमणिका होना संभव है?

नहीं, सामान्य अर्थ में नहीं, मुझे विश्वास नहीं है कि 5.6 भी (नवीनतम संस्करण जब यह उत्तर पहली बार लिखा गया था) में यह कार्यक्षमता है। यह ध्यान देने योग्य है कि 8.0.13 और इसके बाद के संस्करण अब समर्थन करते हैं फंक्शनल इंडेक्स , आपको नीचे वर्णित ट्रिगर विधि के बिना वह हासिल करने की अनुमति देता है जिसकी आपको आवश्यकता है।

यदि आप mysql . का पुराना संस्करण चला रहे हैं , यह है केवल अग्रणी . का उपयोग करना संभव है एक कॉलम का हिस्सा (यह कार्यक्षमता लंबे समय से आसपास रही है), लेकिन दूसरे या बाद के वर्णों, या किसी अन्य जटिल फ़ंक्शन से शुरू होने वाला नहीं।

उदाहरण के लिए, निम्नलिखित नाम के पहले पांच वर्णों का उपयोग करके एक अनुक्रमणिका बनाता है:

create index name_first_five on cust_table (name(5));

अधिक जटिल अभिव्यक्तियों के लिए, आप दूसरा . होने के द्वारा समान प्रभाव प्राप्त कर सकते हैं इंडेक्स करने योग्य डेटा के साथ कॉलम, फिर इंसर्ट/अपडेट ट्रिगर्स का उपयोग करके यह सुनिश्चित करने के लिए कि यह सही ढंग से भरा हुआ है।

अनावश्यक डेटा के लिए व्यर्थ स्थान के अलावा, यह लगभग एक ही बात है।

और, हालांकि यह तकनीकी रूप से 3NF का उल्लंघन करता है, लेकिन डेटा को सिंक में रखने के लिए ट्रिगर्स के उपयोग से इसे कम किया जाता है (यह कुछ ऐसा है जो अक्सर अतिरिक्त प्रदर्शन के लिए किया जाता है)।



  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. Oracle क्लाउड प्लेटफ़ॉर्म पर MySQL डेटाबेस सेवा के साथ Oracle JDeveloper का उपयोग करना, भाग 3

  3. MySQL में पुनरावर्ती से दशमलव की गणना करें

  4. Google क्लाउड प्लेटफ़ॉर्म (GCP) पर MySQL फ़ेलओवर और फ़ेलबैक प्राप्त करना

  5. एक IN स्थिति sql में =से धीमी क्यों होगी?