পিএইচপি ব্যবহার করার সময় মাইএসকিউএল বনাম মাইএসকিউএল [বন্ধ]


167

মাইএসকিউএল বা মাইএসকিউএলি কোনটি ভাল? এবং কেন? আমার কোনটি ব্যবহার করা উচিত?

আমি কেবল পারফরম্যান্সের ক্ষেত্রেই নয়, অন্য কোনও প্রাসঙ্গিক বৈশিষ্ট্যের চেয়েও ভাল।

উত্তর:


111

আপনার যদি মাইএসকিউএল উন্নত এক্সটেনশান ওভারভিউতে একবার দেখে থাকেন তবে দুজনের মধ্যে পার্থক্য সম্পর্কে আপনাকে যা জানার দরকার তা আপনাকে জানাতে হবে।

প্রধান দরকারী বৈশিষ্ট্যগুলি হ'ল:

  • একটি অবজেক্ট-ওরিয়েন্টেড ইন্টারফেস
  • প্রস্তুত বিবৃতি সমর্থন
  • একাধিক বিবৃতি জন্য সমর্থন
  • লেনদেনের জন্য সমর্থন
  • বর্ধিত ডিবাগিং ক্ষমতা
  • এম্বেড করা সার্ভার সমর্থন।

1
হ্যাঁ, সর্বোত্তম বিষয় হ'ল
মাইসকিলি

7
এটিও লক্ষ করা উচিত যে মাইএসকিউএলই কেবল মাইএসকিউএল 5+ এর সাথে কাজ করে। এটি এখন আর প্রাসঙ্গিক নয়, তবে মাইএসকিউএলআই যখন প্রকাশিত হয়েছিল তখন মাইএসকিউএল 4 এখনও স্ট্যান্ডার্ড ছিল। এটি এক্সটেনশানগুলি পৃথক হওয়ার কারণগুলির একটি অংশ, পুরানো মাইএসকিউএল ড্রাইভার সামঞ্জস্যতার উদ্দেশ্যে সেখানে অবস্থান করছেন।
জিনাক করুন

6
এটি লক্ষণীয় যে ছয় বছরে জিনিসগুলি অনেক পরিবর্তিত হয়েছে। mysql_*()এখন অবহেলিত এবং শীঘ্রই সরানো হবে। আপনার এটি নতুন কোডের জন্য ব্যবহার করা উচিত নয়।

কম সিপিইউ এবং র‌্যাম দিয়ে আমাদের কোনটি বেছে নেওয়া উচিত?
মাহদী জাজিনি

1
নীচে গর্ডনের উত্তর দেখুন। পুরানো মাইএসকিএল এক্সটেনশন আর সমর্থিত নয় তাই আপনি যাইহোক মাইএসকিলি এক্সটেনশন ব্যবহার করা ভাল of
মার্ক ডেভিডসন

70

মাইএসকিএল, মাইএসকিলি এবং পিডিও-র মধ্যে নির্বাচন করার জন্য নিবেদিত একটি ম্যানুয়াল পৃষ্ঠা রয়েছে

পিএইচপি টিম নতুন বিকাশের জন্য মাইসকিলি বা পিডিও_মাইএসকিউএল এর সুপারিশ করে:

এটি মাইএসকিলি বা পিডিও_মাইএসকিউএল এক্সটেনশনগুলি ব্যবহার করার পরামর্শ দেওয়া হয়। নতুন বিকাশের জন্য পুরানো মাইএসকিএল এক্সটেনশন ব্যবহার করার পরামর্শ দেওয়া হয় না। নীচে একটি বিশদ বৈশিষ্ট্য তুলনা ম্যাট্রিক্স সরবরাহ করা হয়েছে। তিনটি এক্সটেনশনের সামগ্রিক পারফরম্যান্স প্রায় একই হিসাবে বিবেচিত হয়। যদিও এক্সটেনশনের কার্য সম্পাদন কোনও পিএইচপি ওয়েব অনুরোধের মোট রান সময়ের কেবলমাত্র একটি ভগ্নাংশ অবদান রাখে। প্রায়শই, প্রভাবটি 0.1% এর চেয়ে কম হয়।

পৃষ্ঠায় এক্সটেনশন API গুলি তুলনা করে একটি বৈশিষ্ট্য ম্যাট্রিক্সও রয়েছে। মাইসকিলি এবং মাইএসকিএল এপিআইয়ের মধ্যে প্রধান পার্থক্যগুলি নিম্নরূপ:

                               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

লাইব্রেরিগুলির তুলনা করে একটি অতিরিক্ত বৈশিষ্ট্য ম্যাট্রিক্স রয়েছে (নতুন মাইসক্ল্যান্ড বনাম লিবমিস্কিল)

এবং একটি খুব পুস্তক ব্লগ নিবন্ধ


15

আমি মাইএসকিলি ব্যবহার করা ত্যাগ করেছি। এটি কেবল খুব অস্থির। আমার কাছে এমন প্রশ্ন রয়েছে যা পিএইচপি ক্র্যাশ করে মাইএসকিলি ব্যবহার করে তবে মাইএসকিএল প্যাকেজটির সাথে ঠিক কাজ করে। এছাড়াও মাইএসকিলি লংটেক্সট কলামে ক্র্যাশ হয়েছে । এই বাগটি কমপক্ষে ২০০৫ সাল থেকে বিভিন্ন আকারে উত্থাপিত হয়েছে এবং এটি ভাঙা রয়েছে । আমি সতর্কতার সাথে প্রস্তুত বিবৃতি ব্যবহার করতে চাই তবে মাইএসকিলি কেবলমাত্র নির্ভরযোগ্য নয় (এবং কোনোটাই এটি ঠিক করতে বিরক্ত বলে মনে হচ্ছে না)। আপনি যদি সত্যিই প্রস্তুত বিবৃতি চান PDO সঙ্গে যান।


2
PDO হয় একেবারে নিখুঁত নয় (আমি এটির সাথে কিছু কদর্য কর্ডাম্পগুলিতে চলে এসেছি) তবে কমপক্ষে এর আরও বিস্তৃত ইউজারবেস রয়েছে, সুতরাং এটি সম্ভবত একটি নিরাপদ বাজি bet
ট্রয়লসकन

@ ট্রোয়েলসএন, তাই কি সাধারণ মাইএসকিএল আরও ভাল নয়?
পেসারিয়ার

@ পেসারিয়ার বিবেচনা করে এটি অবনমিত হয়েছে, আমি বলব না। সাধারণভাবে, মনে হয় পিডিও মানক পছন্দ হয়ে উঠেছে seems
ট্রয়লসकन

@ ট্রোয়েলস্কন, তবে অবচিত হ'ল অর্থের অর্থ ভবিষ্যতের সংস্করণগুলিতে এটি না হয়ে থাকে। স্থিতিশীলতার ক্ষেত্রে, স্বাভাবিক মাইএসকিএল আরও স্থিতিশীল নয়?
পেসারিয়ার

1
এই মুহুর্তে (৫.৫) পিএইচপি সক্রিয়ভাবে সতর্কতা জারি করবে যদি আপনি এটি ব্যবহার করেন: php.net/manual/en/migration55.deprecated.php
troelskn

13

মাইএসকিউএলই মাইএসকিউএল উন্নত। এটি মাইএসকিউএল বাইন্ডিংগুলিতে একটি অবজেক্ট-ভিত্তিক ইন্টারফেস যা জিনিসগুলি ব্যবহার করা সহজ করে তোলে। এটি প্রস্তুত বিবৃতিগুলির জন্য সমর্থনও সরবরাহ করে (যা খুব কার্যকর)। আপনি পিএইচপি 5 এ থাকলে মাইএসকিউএলি ব্যবহার করুন।


5

এর চেয়ে ভাল যা পিডিও হয়; এটি কম ক্রুফটি ইন্টারফেস এবং মাইএসকিউএলআইয়ের মতো একই বৈশিষ্ট্যগুলি সরবরাহ করে।

প্রস্তুত বিবৃতি ব্যবহার করা ভাল কারণ এটি এসকিউএল ইঞ্জেকশন সম্ভাবনাগুলি সরিয়ে দেয়; সার্ভার-সাইড প্রস্তুত বিবৃতি ব্যবহার করা খারাপ কারণ এটি রাউন্ড-ট্রিপের সংখ্যা বাড়িয়ে তোলে।


3

আমার জন্য, প্রস্তুত বিবৃতি অবশ্যই একটি বৈশিষ্ট্য। আরও সঠিকভাবে, প্যারামিটার বাইন্ডিং (যা কেবল প্রস্তুত বিবৃতিতে কাজ করে)। এসকিউএল কমান্ডগুলিতে স্ট্রিং sertোকানোর একমাত্র সত্যই বুদ্ধিমান উপায়। আমি সত্যিই 'পলায়ন' কার্যকারিতা বিশ্বাস করি না। ডিবি সংযোগটি বাইনারি প্রোটোকল, কেন প্যারামিটারগুলির জন্য একটি ASCII- সীমিত সাব-প্রোটোকল ব্যবহার করবেন?


1
PDO সাধারণত ক্লায়েন্ট-সাইড প্রস্তুত বিবৃতি ব্যবহার করে, তাই তারা সার্ভারে সত্যই প্রস্তুত হয় না - তবে এটি ভাল, কারণ এটি সার্ভারের সংস্থানগুলি সংরক্ষণ করে এবং সাধারণত আরও ভাল সম্পাদন করে। "বিবরণ" প্রস্তুত বিবৃতি সর্বদা জিনিস সঠিকভাবে এড়াতে হবে।
মার্কআর

1
"সর্বদা" এবং "পলায়ন" একসাথে যাওয়ার সময় বিপজ্জনক শব্দ। আমি জানি না, সম্ভবত এই কোডটি সম্পূর্ণ বাগ-মুক্ত; তবে কেন বিরক্ত হবে, যখন একটি সত্য বাইনারি প্রোটোকল পাওয়া যায়? কর্মক্ষমতা হিসাবে, এটি বেঞ্চমার্কিংয়ের জন্য উন্মুক্ত।
জাভিয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.