एक सभ्य डीबीएमएस में, डीबी इंजन यह पहचान लेगा कि स्ट्रिंग में कोई वाइल्डकार्ड वर्ण नहीं थे और स्पष्ट रूप से इसे शुद्ध समानता में बदल दिया (आवश्यक रूप से =
के समान नहीं)। तो, आपको शुरुआत में केवल एक छोटा सा प्रदर्शन मारा जाएगा, आमतौर पर किसी सभ्य आकार की क्वेरी के लिए नगण्य होगा।
हालांकि, MySQL =
ऑपरेटर आवश्यक तरीके से कार्य नहीं करता है (शुद्ध शुद्धता जांच के रूप में)। विशेष रूप से, यह नहीं डिफ़ॉल्ट रूप से खाते अवांछित स्पेस में CHAR
और VARCHAR
डेटा के लिए ले करता है, जिसका अर्थ है कि:
SELECT age WHERE name = 'pax'
'pax<one space>'
और'pax<a hundred spaces>'
'pax'
के लिए आप जिन पंक्तियों को दे देंगे,। एक पूरी तरह से braindead बैरिंग
mysql> create table people (name varchar(10));
mysql> insert into people value ('pax');
mysql> insert into people value ('pax ');
mysql> insert into people value ('pax ');
mysql> insert into people value ('pax ');
mysql> insert into people value ('notpax');
mysql> select count(*) from people where name like 'pax';
1
mysql> select count(*) from people where name = 'pax';
4
mysql> select count(*) from people where name = binary 'pax';
1
:
आप की तरह कुछ के साथ इस परीक्षण कर सकते हैं:
आप एक उचित समानता की जांच करना चाहते हैं, तो आप
binary
कीवर्ड का उपयोग कार्यान्वयन, स्ट्रिंग तुलना के स्वाद की लागत डिस्क से डेटा को स्थानांतरित करने की लागत से बौना जा रहा है। लिखें कि आप वास्तव में क्या मतलब है और प्रोग्रामिंग के साथ आगे बढ़ें। –यह पहले स्टैक ओवरफ्लो पर [यहां] (http://stackoverflow.com/questions/543580/equals-vs-like) को कवर किया गया है। आशा है कि ये आपकी मदद करेगा। – user34867
धन्यवाद, मैंने पोस्ट करने से पहले इसकी खोज की लेकिन इसे किसी भी तरह से नहीं देखा। – mluebke