कौन सा बेहतर है, MySQL या MySQLi? और क्यों? मुझे कौन सा उपयोग करना चाहिए?
मेरा मतलब सिर्फ प्रदर्शन के मामले में नहीं है, बल्कि किसी अन्य प्रासंगिक विशेषता से है।
कौन सा बेहतर है, MySQL या MySQLi? और क्यों? मुझे कौन सा उपयोग करना चाहिए?
मेरा मतलब सिर्फ प्रदर्शन के मामले में नहीं है, बल्कि किसी अन्य प्रासंगिक विशेषता से है।
जवाबों:
यदि आपके पास MySQL इम्प्रूव्ड एक्सटेंशन ओवरव्यू पर एक नज़र है , तो यह आपको दोनों के बीच के अंतरों के बारे में जानने के लिए आवश्यक सब कुछ बता देगा।
मुख्य उपयोगी विशेषताएं हैं:
mysql_*()
अब हटा दिया गया है और जल्द ही हटा दिया जाएगा। आपको इसका उपयोग नए कोड के लिए नहीं करना चाहिए।
एक मैनुअल पेज है जो mysql, mysqli और PDO के बीच चुनने में मदद करने के लिए समर्पित है
PHP टीम नए विकास के लिए mysqli या PDO_MySQL की सिफारिश करती है:
यह mysqli या PDO_MySQL एक्सटेंशन का उपयोग करने के लिए अनुशंसित है। नए विकास के लिए पुराने mysql एक्सटेंशन का उपयोग करने की अनुशंसा नहीं की गई है। एक विस्तृत सुविधा तुलना मैट्रिक्स नीचे प्रदान की गई है। तीनों एक्सटेंशनों के समग्र प्रदर्शन को एक ही माना जाता है। हालांकि एक्सटेंशन का प्रदर्शन PHP वेब रिक्वेस्ट के कुल रन टाइम के कुछ अंश का ही योगदान देता है। अक्सर, प्रभाव 0.1% जितना कम होता है।
पेज में एक्सटेंशन एपीआई की तुलना करने वाला एक फीचर मैट्रिक्स भी है। Mysqli और mysql एपीआई के बीच मुख्य अंतर इस प्रकार हैं:
mysqli mysql
Development Status Active Maintenance only
Lifecycle Active Long Term Deprecation Announced*
Recommended Yes No
OOP API Yes No
Asynchronous Queries Yes No
Server-Side Prep. Statements Yes No
Stored Procedures Yes No
Multiple Statements Yes No
Transactions Yes No
MySQL 5.1+ functionality Yes No
* http://news.php.net/php.internals/53799
पुस्तकालयों (नए mysqlnd बनाम libmysql) की तुलना में एक अतिरिक्त फीचर मैट्रिक्स है
और एक बहुत अच्छी तरह से ब्लॉग पर लेख
मैंने mysqli का उपयोग करना छोड़ दिया है। यह बस बहुत अस्थिर है। मेरे पास क्वेरीज़ हैं जो PHP को mysqli का उपयोग करके क्रैश करते हैं लेकिन mysql पैकेज के साथ ठीक काम करते हैं। इसके अलावा mysqli LONGTEXT कॉलम पर क्रैश होता है । यह बग कम से कम 2005 से विभिन्न रूपों में उठाया गया है और टूटा हुआ है । मैं ईमानदारी से तैयार कथनों का उपयोग करना चाहता हूं, लेकिन mysqli अभी पर्याप्त विश्वसनीय नहीं है (और कोई भी इसे ठीक करने के लिए परेशान नहीं करता है)। यदि आप वास्तव में तैयार बयानों को पीडीओ के साथ जाना चाहते हैं।
मेरे लिए, तैयार किए गए बयानों में एक विशेषता होनी चाहिए। अधिक सटीक, पैरामीटर बाइंडिंग (जो केवल तैयार बयानों पर काम करता है)। यह एसक्यूएल कमांड में तार डालने का एकमात्र वास्तविक तरीका है। मुझे वास्तव में 'भागने' के कार्यों पर भरोसा नहीं है। DB कनेक्शन एक बाइनरी प्रोटोकॉल है, मापदंडों के लिए ASCII- सीमित उप-प्रोटोकॉल का उपयोग क्यों करें?