क्या किसी को पता है, क्या FK MySQL में इन्सर्ट/अपडेट ऑपरेशंस को कम करता है? मैं इंजन INNODB का उपयोग करता हूं।
2 जवाब
- एक टेबल पर FK होने से एक इंडेक्स परोक्ष रूप से एक इंडेक्स बनता है (और बनाए रखता है)।
- कुछ लेखन कार्य करते समय, अन्य तालिका में उपयुक्त पंक्ति के अस्तित्व को सत्यापित करने के लिए FK के निहित
INDEX
की जाँच की जाती है। लेखन के दौरान यह एक मामूली प्रदर्शन बोझ है। SELECT ... JOIN
करते समय जिसके लिए आप स्पष्ट रूप से उपयुक्त सूचकांक प्रदान करने में विफल रहे, कुछ FK द्वारा निर्मित निहित सूचकांक चलन में आ सकता है। यह कुछJOINs
के लिए एक बड़ा लाभ है, लेकिन इसके लिए FK की आवश्यकता नहीं है, क्योंकि आपINDEX
को मैन्युअल रूप से जोड़ सकते थे।- अगर एफके परिभाषा में
ON DELETE or UPDATE
शामिल है, तो और भी काम किया जा सकता है, खासकरCASCADE
के लिए।CASCADE
के प्रभाव कोSELECT
और अधिक कोड के साथ प्राप्त किया जा सकता है - लेकिन उतनी कुशलता से नहीं जितनाCASCADE
को काम करने देता है। - एफके सीमित हैं कि वे क्या कर सकते हैं। स्टैक ओवरफ्लो प्रश्न से भरा हुआ है जैसे "मैं एक्स करने के लिए एफके कैसे प्राप्त कर सकता हूं?"
क्या इनमें से कोई भी ध्वनि "डालने/अद्यतन संचालन को कम करने" की तरह है?
क्या FK MySQL में इन्सर्ट/अपडेट ऑपरेशंस को कम करता है?
यह MySQL के बारे में नहीं है, लेकिन हां के बारे में है। एक कॉलम पर FK बनाने से एक सेकेंडरी इंडेक्स बन जाएगा और इस तरह DML ऑपरेशन पर उन इंडेक्स को भी अपडेट करने की जरूरत है ताकि सही टेबल आँकड़े हों। ताकि, डीबी अनुकूलक एक सही और कुशल क्वेरी योजना तैयार कर सके
संबंधित सवाल
नए सवाल
mysql
MySQL एक फ्री, ओपन सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है जो स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) का उपयोग करता है। इस टैग को अन्य DBs जैसे SQL Server, SQLite आदि के लिए उपयोग न करें। वे विभिन्न DB हैं जो सभी डेटा का प्रबंधन करने के लिए SQL की अपनी बोलियों का उपयोग करते हैं।