2011-10-17 10 views
5

कोई प्रदर्शन बढ़ाने के बाद LIMIT 1 जोड़ दिया गया है?क्या LIMIT 1 में कोई प्रदर्शन बढ़ावा है?

... यदि मिलान किया गया केवल एक संभावित प्रविष्टि हो सकती है (WHERE प्राथमिक कुंजी के लिए खंड)?

SELECT `x` 
FROM `unicorns` 
WHERE `id` = 123 
LIMIT 1 

... एक ही, लेकिन अब यह DELETE है:

DELETE FROM `unicorns` 
WHERE `id` = 123 
LIMIT 1 

... और UPDATE:

UPDATE `unicorns` 
SET `rainbows` = `rainbows` + 1 
WHERE `id` = 123 
LIMIT 1 

पी.एस. कॉलम id प्राथमिक कुंजी है इसलिए यह अद्वितीय है।

एक सलाह में धन्यवाद!

+1

सीमा, इस मामले में, कोई प्रभाव नहीं होना चाहिए। साथ ही, आपको अपने कॉलम नामों के आस-पास उद्धरण की आवश्यकता नहीं होनी चाहिए। – DwB

+4

मुझे व्यक्तिगत रूप से लगता है कि यह स्पष्टता और खरगोश के लिए अभी भी अच्छा है – Will03uk

उत्तर

4

यह निर्भर करता है कि आप या नहीं स्तंभ पर सूचकांक

DELETE FROM `unicorns` WHERE `id` = 123 LIMIT 1 

व्यर्थ यदि आईडी प्राथमिक कुंजी है, लेकिन

DELETE FROM `unicorns` WHERE `noindexoclumn` = 123 LIMIT 1 

यू कार्यक्षमता को बढ़ावा देने

0

यह बढ़ावा देंगे दे देंगे प्रदर्शन में डीबी केवल पंक्तियों का एक fetch शुरू करेगा जो क्वेरी की शर्तों को संतुष्ट करता है। लेकिन अपडेट पर, बिंदु क्या है? विशेष रूप से यदि आप किसी प्राथमिक कुंजी पर सटीक मिलान कर रहे हैं - तो आप केवल एक पंक्ति से शुरुआत करने के लिए मेल खाते हैं, इसलिए यह कहने में कोई बात नहीं है कि "तालिका में यह एक पंक्ति अपडेट करें, लेकिन केवल एक पंक्ति अपडेट करें अधिकांश"।

संबंधित मुद्दे