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

सिम्फनी के एसीएल का उपयोग करते समय, जॉइन क्वेरी या आईएन सरणी क्वेरी का उपयोग करना बेहतर होता है?

आइए दोनों मामलों में समय की जटिलताओं को देखें:

अरे दृष्टिकोण में: M rows . की इकाई तालिका , एसीएल प्रविष्टियों के साथ size N (एसीएल तालिका में पंक्तियाँ यहाँ प्रासंगिक नहीं हैं)

समय की जटिलता :ओ [एन * लॉग (एम)]

दृष्टिकोण से जुड़ें: M rows . की इकाई तालिका , N rows . की ACL तालिका के साथ

समय की जटिलता :ओ[एम + एन]

व्यवहार में हमारे पास आम तौर पर ऐसी स्थिति होती है जैसे,

सरणी में

N=10,000
M=1,000,000
O=>60,000

शामिल हों

N=10,000
M=1,000,000
O=>1,010,000

और सिद्धांत रूप में, इन एरे के लिए सबसे खराब स्थिति होगी

सरणी में

N=1,000,000,000
M=1,000,000,000
O=>9,000,000,000

शामिल हों

N=1,000,000,000
M=1,000,000,000
O=>2,000,000,000

इसका क्या अर्थ है? सारांश/टीएल;डीआर

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

यदि प्रत्येक उपयोगकर्ता के पास इकाई के प्रत्येक ऑब्जेक्ट के लिए एसीएल प्रविष्टि होगी, तो जॉइन का उपयोग करें। हालांकि लाभ परिमाण के कई आदेशों का नहीं होगा (जब तक कि आपके पास खरबों उत्पाद न हों), इसलिए आप अभी भी IN सरणी का उपयोग करना चाह सकते हैं।

दोनों ही मामलों में, ACL का उपयोग केवल तभी करें जब अत्यंत आवश्यक हो! मतदाता FTW!




  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. सी ++ में एक mysql++ क्वेरी को टाइमआउट कैसे करें

  3. सम्मिलित करें ... डुप्लीकेट कुंजी पर (कुछ न करें)

  4. MySqlCommand पैरामीटर का उपयोग करते समय मैं कमांड स्ट्रिंग कैसे देख सकता हूं?

  5. लार्वा कोड में वीडियो कैसे एम्बेड करें