নিম্নলিখিত প্রশ্নাগুলির মধ্যে আপনি কোন পদ্ধতিটিকে আরও ভাল হিসাবে বিবেচনা করবেন? আপনার কারণগুলি কী (কোড দক্ষতা, আরও ভাল রক্ষণাবেক্ষণ, কম ডাব্লুটিফাই) ...
SELECT MIN(`field`)
FROM `tbl`;
SELECT `field`
FROM `tbl`
ORDER BY `field`
LIMIT 1;
উত্তর:
সবচেয়ে খারাপ ক্ষেত্রে, যেখানে আপনি একটি শৃঙ্খলাবদ্ধ ক্ষেত্রের দিকে তাকিয়ে আছেন সেখানে ব্যবহারের MIN()জন্য সারণির একক পূর্ণ পাসের প্রয়োজন। ব্যবহার SORTএবং LIMITএকটি ফাইলসোর্ট প্রয়োজন। যদি কোনও বড় টেবিলের বিরুদ্ধে চালানো হয় তবে পার্সিভাইড পারফরম্যান্সে সম্ভবত একটি উল্লেখযোগ্য পার্থক্য থাকবে। অর্থহীন ডেটা পয়েন্ট হিসাবে, MIN().36 সেকেন্ড সময় নিয়েছিল SORTএবং LIMITআমার দেব সার্ভারে 106,000 সারি টেবিলের বিপরীতে .84 গুলি নিয়েছিল।
তবে, আপনি যদি কোনও সূচিকৃত কলামটি দেখছেন তবে পার্থক্যটি লক্ষ্য করা শক্ত is (উভয় ক্ষেত্রে অর্থহীন ডাটা পয়েন্ট 0.00s)। ব্যাখ্যাটির ফলাফলের দিকে তাকালে, দেখে মনে MIN()হচ্ছে এটি সূচক থেকে সর্বাধিকতম মানটি তুলতে সক্ষম হয়েছে ('টেবিলগুলি অপ্টিমাইজড সরিয়ে ফেলুন ' এবং 'এনইউএল' সারিগুলি রয়েছে) SORTএবং LIMITএখনও সূচকে একটি আদেশযুক্ত ট্র্যাভারসাল করার প্রয়োজন রয়েছে needs (106,000 সারি)। প্রকৃত পারফরম্যান্সের প্রভাবটি সম্ভবত নগণ্য।
দেখে মনে হচ্ছে এটি চলার MIN()উপায় - এটি সবচেয়ে খারাপ ক্ষেত্রে দ্রুততর, সেরা ক্ষেত্রে পৃথক পৃথক, এটি স্ট্যান্ডার্ড এসকিউএল এবং সর্বাধিক স্পষ্টভাবে আপনি যে মানটি পাওয়ার চেষ্টা করছেন তা প্রকাশ করে। একমাত্র ক্ষেত্রে যেখানে মনে হয় যে ব্যবহার SORTএবং LIMITপছন্দসই হবে, যেমনটি মিসান উল্লেখ করেছেন, যেখানে আপনি একটি সাধারণ অপারেশন লিখছেন যা স্বেচ্ছাসেবী কলামগুলি থেকে উপরের বা নীচের এন মানগুলি খুঁজে পায় এবং বিশেষ-কেস অপারেশনটি লেখার পক্ষে মূল্যহীন নয়।
SELECT MIN(`field`)
FROM `tbl`;
কেবল এটি এএনএসআই সামঞ্জস্যপূর্ণ কারণ। সীমা 1 মাইএসকিএল-তে বিশেষ যেমন শীর্ষস্থানীয় এসকিউএল সার্ভারের।
মিশন এবং শন ম্যাকসোমথিং হিসাবে সরু আউট আছে, MIN এর শ্রেয়।
অর্ডার বাই + লিমিটেডের আরও একটি কারণ যেখানে আপনি এমআইএন কলামের চেয়ে আলাদা কলামের মান পেতে চান is
উদাহরণ:
SELECT some_other_field, field
FROM tbl
ORDER BY field
LIMIT 1
আমি মনে করি উত্তরগুলি আপনি কী করছেন তার উপর নির্ভর করে।
আপনার যদি 1 টি বন্ধ জিজ্ঞাসা থাকে এবং অভিপ্রায়টি আপনার নির্দিষ্ট হিসাবে সাদামাটা, মিনিট (ক্ষেত্র) নির্বাচন করা ভাল।
যাইহোক, এই ধরণের প্রয়োজনীয়তাগুলিতে - শীর্ষস্থানীয় ফলাফলগুলি অর্জন করুন, এনটিএইচ - ম্যাথ রেজাল্ট ইত্যাদি গ্রহণ করা সাধারণ is
আমি মনে করি না যে এটি আপনার নির্বাচিত ডাটাবেসে প্রতিশ্রুতিবদ্ধ করার পক্ষে খুব ভয়ঙ্কর ধারণা। ডিবিএস পরিবর্তন করা হালকাভাবে করা উচিত নয় এবং আপনি যখন এই পদক্ষেপটি গ্রহণ করবেন তখন আপনার মূল্য দিতে হবে সংশোধন করতে হবে।
কেন নিজেকে এখনই সীমাবদ্ধ রাখুন, ব্যথার জন্য আপনি পরে বা অনুভব করতে পারেন?
আমি মনে করি যতটা সম্ভব এএনএসআই থাকা ভাল তবে এটি কেবল একটি গাইডলাইন ...
গ্রহণযোগ্য পারফরম্যান্স দেওয়া আমি প্রথমটি ব্যবহার করব কারণ এটি শব্দার্থগতভাবে উদ্দেশ্যটির কাছাকাছি।
পারফরম্যান্সটি যদি কোনও সমস্যা হয়ে থাকে, (বেশিরভাগ আধুনিক অপ্টিমাইজারগুলি উভয়কে একই ক্যোয়ারী পরিকল্পনায় যথাযথভাবে অনুকূলিত করবে, যদিও এটি যাচাই করতে আপনাকে পরীক্ষা করতে হবে) তবে অবশ্যই আমি দ্রুতটি ব্যবহার করব।