কোনটি দ্রুত / সেরা? নির্বাচন করুন * বা নির্বাচন করুন কলাম 1, কলাম 2, কলাম 3, ইত্যাদি


166

আমি শুনেছি যে SELECT *এসকিউএল কমান্ডগুলি লেখার সময় সাধারণত ব্যবহার করা খারাপ অভ্যাস কারণ এটি SELECTআপনার বিশেষভাবে প্রয়োজনীয় কলামগুলিতে আরও দক্ষ ।

আমার SELECTযদি কোনও টেবিলের প্রতিটি কলামের প্রয়োজন হয় , আমি কি ব্যবহার করব

SELECT * FROM TABLE

অথবা

SELECT column1, colum2, column3, etc. FROM TABLE

এই ক্ষেত্রে দক্ষতা কি সত্যিই গুরুত্বপূর্ণ? আমি মনে করি SELECT *অভ্যন্তরীণভাবে আরও সর্বোত্তম হতে পারে যদি আপনার সত্যিকারের সমস্ত ডেটার প্রয়োজন হয় তবে আমি এটি ডাটাবেসের কোনও সত্য উপলব্ধি না করেই বলছি।

এক্ষেত্রে সেরা অনুশীলনটি কী তা জানতে আগ্রহী ious

আপডেট: আমি সম্ভবত উল্লেখ করা উচিত যে শুধুমাত্র অবস্থা যেখানে আমি সত্যিই চাই চান একটি করতে SELECT *যখন আমি এক টেবিল থেকে ডাটা নির্বাচন করছি আমি কোথায় জানি সব কলাম সবসময় উদ্ধার করতে হবে, এমনকি যখন নতুন কলাম যোগ করা হয়।

তবে আমি যে প্রতিক্রিয়াগুলি দেখেছি তা প্রদত্ত, এটি এখনও একটি খারাপ ধারণা বলে মনে হচ্ছে এবং SELECT *কখনও কখনও এমন প্রযুক্তিগত কারণে কখনও ব্যবহার করা উচিত নয় যা আমি এখনও এর মধ্যে দিয়েছি।




1
হ্যাঁ, এটি তাদের বেশিরভাগের একটি সদৃশ।
জর্জ স্টকার

উত্তর:


168

নির্দিষ্ট কলামগুলি নির্বাচন করা আরও ভাল কারণগুলির একটি কারণ এটি হ'ল সম্ভাব্যতা বাড়ায় যে এসকিউএল সার্ভার সারণির ডেটা অনুসন্ধান করার চেয়ে সূচী থেকে ডেটা অ্যাক্সেস করতে পারে।

আমি এটি সম্পর্কে লিখেছিলাম একটি পোস্ট এখানে: আসল কারণ নির্বাচন প্রশ্নাবলী খারাপ সূচক কভারেজ হয়

এটি পরিবর্তন করাও কম ভঙ্গুর, যেহেতু ডেটা গ্রাস করে এমন কোনও কোড ভবিষ্যতে সারণী স্কিমাতে পরিবর্তনগুলি নির্বিশেষে একই ডেটা কাঠামো পাবে।


3
এই জন্য +1। যদি উল্লেখ করা সমস্ত কলামগুলি একটি একক সূচীতে উপস্থিত থাকে ("" কভারিং সূচক "), আপনি সোনার আঘাত করেছেন।
ইয়ান নেলসন

22
এটি তার প্রশ্নের উত্তর নয় - "যদি আমাকে একটি টেবিলের প্রতিটি কলামটি নির্বাচন করার দরকার হয়, ..." - সেই ক্ষেত্রে, * বনাম কল 1, .., কোলন কিছু যায় আসে না (তবে এটি প্রোগ্রামার সময়ের জন্য করে, যেহেতু * ছোট!)
ম্যাট রোগিশ

3
এটি এখনও গুরুত্বপূর্ণ, কারণ নির্বাচিত তালিকাটি চুক্তির একটি ফর্ম, বিশেষত যদি এসকিউএল কোনও সঞ্চিত পদ্ধতিতে থাকে।
এরিক জেড দাড়ি

4
জোন যা বলছেন তা সম্পূর্ণরূপে সঠিক এবং একটি খুব বৈধ পয়েন্ট হলেও, আমাকে একমত হতে হবে যে জিজ্ঞাসা করা প্রশ্নটি তারা ইতিমধ্যে সমস্ত কলামের জন্য জিজ্ঞাসা করছে কিনা তা সম্পর্কে। প্রশ্নের এই অংশের কারণে, আসল সমস্যাগুলি স্কিমা পরিবর্তনের মুখে ভঙ্গুরতা।
আইডিজিপোজেবল

1
@ ম্যাটরোগিশ স্যার আপনি এটি সঠিকভাবে পেয়েছেন, আমাদের vsকয়েক হাজার সারি থাকা অবস্থায় এই দুটি পদ্ধতির (* সমস্ত_কলাম_নাম) এর মধ্যে কোনও পারফরম্যান্সের পার্থক্য রয়েছে কি না এবং আমরা সূচী সহ নির্বাচিত সম্পাদনা করি (যেখানে শর্তে) ??
সন্তোষ

59

প্রদত্ত আপনার স্পেসিফিকেশন যে আপনার হয় সব কলাম নির্বাচন সামান্য পার্থক্য আছে এই সময়ে । তবে উপলব্ধি করুন যে ডাটাবেস স্কিমার পরিবর্তন হয়। আপনি যদি ব্যবহার করেন তবে আপনি SELECT *টেবিলে কোনও নতুন কলাম যুক্ত করতে যাচ্ছেন, যদিও সমস্ত সম্ভাবনার মধ্যেও, আপনার কোড সেই নতুন ডেটা ব্যবহার বা উপস্থাপনের জন্য প্রস্তুত নয়। এর অর্থ হ'ল আপনি আপনার সিস্টেমটিকে অপ্রত্যাশিত কর্মক্ষমতা এবং কার্যকারিতা পরিবর্তনের জন্য প্রকাশ করছেন।

আপনি এটিকে সামান্য ব্যয় হিসাবে বরখাস্ত করতে ইচ্ছুক হতে পারেন, তবে বুঝতে পারেন যে কলামগুলি আপনার এখনও প্রয়োজন নেই তা অবশ্যই:

  1. ডাটাবেস থেকে পড়ুন
  2. নেটওয়ার্ক জুড়ে পাঠানো হয়েছে
  3. আপনার প্রক্রিয়া মার্শাল করা
  4. (এডিও-টাইপ প্রযুক্তির জন্য) মেমরির কোনও ডাটা-টেবিলে সংরক্ষিত
  5. উপেক্ষা করা এবং ফেলে দেওয়া / আবর্জনা-সংগৃহীত

আইটেম # 1 এর কয়েকটি সম্ভাব্য আচ্ছাদন সূচককে মুছে ফেলা সহ ডেটা-পৃষ্ঠা লোড (এবং সার্ভার ক্যাশে থ্র্যাশিং) সৃষ্টি করে, সারি / পৃষ্ঠা / সারণী লকগুলি অন্তর্ভুক্ত রয়েছে যা অন্যথায় এড়ানো যেতে পারে।

এটির তুলনায় কলামগুলি নির্দিষ্ট করে দেওয়ার সম্ভাব্য সঞ্চয়ের বিপরীতে সামঞ্জস্য করুন *এবং একমাত্র সম্ভাব্য সঞ্চয়গুলি হ'ল:

  1. প্রোগ্রামারকে কলাম যুক্ত করতে এসকিউএল পুনর্বিবেচনার দরকার নেই
  2. এসকিউএলের নেটওয়ার্ক-পরিবহন ছোট / দ্রুত is
  3. এসকিউএল সার্ভার ক্যোয়ারী পার্স / বৈধকরণের সময়
  4. এসকিউএল সার্ভারের ক্যোয়ারী প্ল্যান ক্যাশে

আইটেম 1 এর জন্য, বাস্তবতাটি হ'ল আপনি যে কোনও নতুন কলাম যে কোনও উপায়ে যুক্ত করতে ব্যবহার করতে কোড যুক্ত করতে / পরিবর্তন করতে যাচ্ছেন, সুতরাং এটি ধোয়া।

আইটেম 2 এর জন্য, পার্থক্যটি আপনাকে কোনও আলাদা প্যাকেট-আকার বা নেটওয়ার্ক প্যাকেটের সংখ্যার দিকে ঠেলে দিতে খুব কমই যথেষ্ট। আপনি যদি সেই স্থানে পৌঁছে যান যেখানে এসকিউএল স্টেটমেন্ট ট্রান্সমিশনের সময়টি প্রধান সমস্যা, আপনি সম্ভবত প্রথমে বিবৃতিগুলির হার হ্রাস করতে হবে।

আইটেম 3 এর জন্য, কোনও প্রকারের সঞ্চয় নেই কারণ যে *কোনওভাবেই এর সম্প্রসারণ হতে হবে , যার অর্থ টেবিল (গুলি) এর স্কিমার সাথে পরামর্শ করা consulting বাস্তবিকভাবে, কলামগুলি তালিকাভুক্তকরণে একই ব্যয় হবে কারণ তাদের স্কিমার বিপরীতে বৈধতা দিতে হবে। অন্য কথায় এটি সম্পূর্ণ ধোয়া।

আইটেম 4 এর জন্য, আপনি নির্দিষ্ট কলামগুলি নির্দিষ্ট করার সময়, আপনার ক্যোয়ারী প্ল্যান ক্যাশেটি বড় হতে পারে তবে কেবল আপনি কলামের বিভিন্ন সেট (যা আপনি নির্দিষ্ট করেছেন তা নয়) নিয়ে কাজ করছেন। এই ক্ষেত্রে, আপনি বিভিন্ন ক্যাশে এন্ট্রি চান না কারণ আপনি প্রয়োজন হিসাবে বিভিন্ন পরিকল্পনা চান।

সুতরাং, ঘটনাটি স্কিমা সংশোধন করার ক্ষেত্রে আপনি যেভাবে প্রশ্নটি নির্দিষ্ট করেছেন তার কারণ ইস্যুটির স্থিতিস্থাপকতার বিষয়টি হ্রাস পেয়েছে। আপনি যদি এই স্কিমাটি আরওএম-এ জ্বালিয়ে দিচ্ছেন (এটি ঘটে), তবে *এটি পুরোপুরি গ্রহণযোগ্য।

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

আমার পরামর্শ হ'ল আপনার অবশ্যই নির্দিষ্ট কলামগুলি নির্বাচন করা উচিত । মনে রাখবেন যে আপনি বারবার যা করেন তাতে আপনি ভাল হন, তাই এটি সঠিকভাবে করার অভ্যাস করুন।

আপনি যদি ভাবছেন যে কোডটি পরিবর্তন না করে কোনও স্কিমা কেন পরিবর্তন হতে পারে তবে নিরীক্ষণের ক্ষেত্রে, কার্যকর / মেয়াদোত্তীকরণের তারিখ এবং অন্যান্য অনুরূপ বিষয়গুলি ডিবিএ দ্বারা সংযুক্তির জন্য সিস্টেমিকভাবে যুক্ত হওয়ার ক্ষেত্রে বিবেচনা করুন। আন্ডারহ্যান্ডেড পরিবর্তনের আরেকটি উত্স হ'ল সিস্টেম বা ব্যবহারকারী-সংজ্ঞায়িত ক্ষেত্রগুলির অন্য কোথাও পারফরম্যান্সের জন্য অস্বীকৃতি।


3
"বাস্তবতাটি হ'ল আপনি যে কোনও নতুন কলাম যে কোনও উপায়ে যুক্ত করতে ব্যবহার করতে কোড যুক্ত / পরিবর্তন করতে যাচ্ছেন, সুতরাং এটি ধোয়া।" - কেবলমাত্র আপনি যদি নিজের কোডটিতে প্রতিটি কলামটি ম্যানুয়ালি পড়েন। আপনি যদি স্বয়ংক্রিয় ম্যাপিং ব্যবহার করছেন তবে এটি এমন নয় এবং এই সমস্যাটি তাৎপর্যপূর্ণ হয়ে ওঠে।
জোশ নোয়ে

36

আপনার প্রয়োজনীয় কলামগুলি কেবল আপনার নির্বাচন করা উচিত। এমনকি আপনার যদি সমস্ত কলামের প্রয়োজন হয় তবে কলামের নাম তালিকাভুক্ত করা আরও ভাল যাতে বেকার সার্ভারের কলামগুলির জন্য সিস্টেম টেবিলটি জিজ্ঞাসা করতে না হয়।

এছাড়াও, যদি কেউ টেবিলে কলাম যুক্ত করে তবে আপনার অ্যাপ্লিকেশনটি ভেঙে যেতে পারে। আপনার প্রোগ্রামটি কলামগুলি পাবেন যা এটি খুব বেশি আশা করেনি এবং সেগুলি কীভাবে প্রসেস করা যায় তা হয়ত জানেন না।

এগুলি ছাড়াও যদি টেবিলটিতে একটি বাইনারি কলাম থাকে তবে ক্যোয়ারীটি আরও ধীর হবে এবং আরও বেশি নেটওয়ার্ক সংস্থান ব্যবহার করবে।


6
আহা তাই * ব্যবহার করে আপনি ডিবি-র জন্য অতিরিক্ত কাজ যুক্ত করছেন। ঠিক আছে এটি একটি কারণ আমি ভেবে দেখিনি।
অঙ্কুর

1
ভুলগুলি তাড়াতাড়ি ভাঙ্গা / ধরা ঝুঁকির জন্য +1। আমি মনে করি দক্ষতার আলোচনা বৈধ তবে YAGNI।
নাইলিটডাউন

6
এসকিউএল সার্ভারকে বৈধতা দেওয়ার বা পরীক্ষা করার প্রয়োজন হবে না "কোল 1" যেভাবেই নির্দিষ্ট টেবিলের মধ্যে রয়েছে, যেমন ক্যোয়ারী সিস্টেম সারণীতে?
প্যাট্রিক

3
সবচেয়ে বড় পারফরম্যান্স হিট সম্ভবত ইনডেক্সিং সম্পর্কিত। আপনি যে কলামটি সন্ধান করছেন সেটি যদি সার্ভারের ডেটা সন্ধান করার জন্য ব্যবহৃত সূচির অংশ হয় তবে ঠিক সেখানেই ডাটা আনা হবে, যদি আপনি একটি নির্বাচন করেন * এটি সম্ভবত বুকমার্ক লুক বলে যা করতে হবে যা অতিরিক্ত প্রয়োজন বাকি অন্তর্নিহিত ডেটা খুঁজে পেতে স্ক্যান করুন, যা আপনার এমনকি প্রয়োজনও নাও হতে পারে।
কোপুসেভ

3
@ পেট্রিক - স্পট অন। * এড়ানোর জন্য অনেকগুলি ভাল কারণ তবে এটি তাদের মধ্যে একটি নয়।
মার্টিন স্মিথ

31

চারটি বড় কারণ এটি select *একটি খারাপ জিনিস:

  1. সর্বাধিক উল্লেখযোগ্য ব্যবহারিক কারণ হ'ল এটি ব্যবহারকারীকে কলামগুলি কীভাবে ফিরে আসবে সেই ক্রমটি যাদুকরীভাবে জানতে বাধ্য করে। এটি সুস্পষ্ট হওয়া ভাল, যা আপনাকে টেবিল পরিবর্তনের বিরুদ্ধেও সুরক্ষা দেয়, যা এতে সুন্দরভাবে বিভক্ত হয় ...

  2. যদি কোনও কলামের নাম আপনি পরিবর্তন ব্যবহার করে থাকেন তবে এটির (এসকিউএল কলের বিন্দুতে) তাড়াতাড়ি ধরার চেয়ে আপনি কলামটি আর ব্যবহার করার চেষ্টা করছেন না যেটি আর বিদ্যমান নেই (বা এর নাম পরিবর্তন হয়েছে) ইত্যাদি )

  3. কলামের নাম তালিকাবদ্ধ করা আপনার কোডটিকে আরও বেশি স্ব-ডকুমেন্টেড করে তোলে এবং সম্ভবত আরও পাঠযোগ্য।

  4. আপনি যদি কোনও নেটওয়ার্কের মাধ্যমে স্থানান্তর করেন (বা আপনি নাও হন), আপনার যে কলামগুলির প্রয়োজন নেই সেগুলি কেবল অপচয়।


7
"সর্বাধিক উল্লেখযোগ্য ব্যবহারিক কারণ হ'ল এটি ব্যবহারকারীকে কলামগুলি কীভাবে ফিরে আসবে তা ক্রমাগতভাবে জানতে জোর করে।" আমি দেখতে পাচ্ছি না এটি কীভাবে সমস্যা। যে কোনও আধুনিক ডিবি ক্লায়েন্টে, আপনি নাম অনুসারে কলামগুলি পড়েন, অর্ডার নয়।
জোশ নোয়ে

আমি একটি সি ইন্টারফেসের মাধ্যমে আমার এসকিউএল চালানোর ঝোঁক রাখি, তাই "ডিবি ক্লায়েন্টস" এর শিল্পের অবস্থা কী তা আমি সত্যিই জানতে পারি না। তবে আমি মনে করি আপনি সম্ভবত যে ধরণের ক্লায়েন্টের কথা বলছেন সেটি কিছু অ-মানক অ-এসকিউএল ম্যাজিক করছে। (উদাহরণস্বরূপ, এসকিউএলাইটে, কীভাবে আপনার *নামের নামগুলিতে পরিবর্তন করতে হবে তা নির্ধারণের জন্য
sqlite3_master অনুসন্ধান করছেন

এবং এ থেকে আরও কত লোক আধুনিক অ্যাপ্লিকেশনগুলিতে কোড লেখেন যা কলামের নামের সূচক ব্যবহার করে? বেশিরভাগ লোকেরা অবশ্যই ডেটার জন্য কিছু ধরণের ম্যাপার এবং ক্যাশিংয়ের পুরো গাদা ব্যবহার করছে যা বাসি হওয়ার অনুমতি রয়েছে। ব্যক্তিগতভাবে, কোডটি প্রথমে লিখুন এবং তারপরে আপনার কার্য সম্পাদনের সমস্যা আছে কিনা তা নিয়ে চিন্তা করুন worry
কলিন বুদ্ধিমান

10

কলামের তালিকাটি উল্লেখ করা সাধারণত সেরা বিকল্প কারণ যদি কেউ টেবিলে কোনও কলাম যুক্ত / সন্নিবেশ করায় তবে আপনার অ্যাপ্লিকেশনটি প্রভাবিত হবে না।


7

কলামের নাম উল্লেখ করা অবশ্যই সার্ভারের জন্য দ্রুত। কিন্তু যদি

  1. পারফরম্যান্স বড় সমস্যা নয় (উদাহরণস্বরূপ, এটি প্রতিটি ওয়েবসাইটের শত শত, সম্ভবত কয়েক হাজার - তবে মিলিয়ন নয় - সহ একটি ওয়েবসাইট সামগ্রী ডেটাবেস); এবং
  2. আপনার কাজটি হ'ল একটি জটিল অফ-অ্যাপ্লিকেশন তৈরির পরিবর্তে একটি সাধারণ কাঠামো ব্যবহার করে অনেকগুলি ছোট, অনুরূপ অ্যাপ্লিকেশনগুলি (যেমন জনসাধারণের মুখোমুখি সামগ্রী-পরিচালিত ওয়েবসাইটগুলি) তৈরি করা; এবং
  3. নমনীয়তা গুরুত্বপূর্ণ (প্রতিটি সাইটের জন্য ডিবি স্কিমার প্রচুর স্বনির্ধারণ);

তারপরে আপনি নির্বাচন করুন * দিয়ে স্টিকিং করা থেকে ভাল। আমাদের কাঠামোর মধ্যে, নির্বাচন * এর ভারী ব্যবহার আমাদের একটি টেবিলের সাথে একটি নতুন ওয়েবসাইট পরিচালিত সামগ্রী ক্ষেত্র প্রবর্তন করতে দেয়, এটি সিএমএসের সমস্ত সুবিধা (সংস্করণ, কর্মপ্রবাহ / অনুমোদন ইত্যাদি) প্রদান করে, যখন কেবলমাত্র কোডটিতে স্পর্শ করে ing কয়েক পয়েন্ট পরিবর্তে কয়েক ডজন পয়েন্ট।

আমি জানি ডিবি গুরুরা এটির জন্য আমাকে ঘৃণা করতে চলেছেন - এগিয়ে যান, আমাকে ভোট দিন - তবে আমার বিশ্বে ডেভেলপারদের সময় কম।


1
এটি ওআরএম ব্যবহার করতে আরও সহজ করে তোলে। যখন কোয়েরি বিল্ডিং অবজেক্টকে পাশ কাটিয়ে কোয়েরিগুলি তৈরি করা হয়, তখন কোডের অন্যান্য অংশগুলি (অনুমতি যাচাই করা হয়, আপনার কী আছে) দ্বারা কোন কলামগুলি আবশ্যক তা আবশ্যকভাবে অবগত নয়। সুতরাং কলামগুলিকে সীমাবদ্ধ করতে প্রত্যেক সময় কোনও প্রশ্নের জন্য লেখার দরকার পড়ে তদন্ত করতে হবে। এটি অর্থহীন, আইএমও। যখন অনুসন্ধানগুলি ধীরে ধীরে পরিণত হয় (লগস!), একজন সেগুলিকে উন্নত করতে পারে।
বাইটপুশার

6

কোয়েরিটি কোনও নেটওয়ার্কে না পাঠানো হলেও SELECT * একটি খারাপ অভ্যাস।

  1. আপনার প্রয়োজনের তুলনায় আরও ডেটা নির্বাচন করা ক্যোয়ারিকে কম দক্ষ করে তোলে - সার্ভারকে অতিরিক্ত ডেটা পড়তে এবং হস্তান্তর করতে হয়, সুতরাং এটি সময় নেয় এবং সিস্টেমে অপ্রয়োজনীয় লোড তৈরি করে (কেবল নেটওয়ার্ক নয়, অন্যরা যেমন উল্লেখ করেছেন, তেমনি ডিস্ক, সিপিইউ ইত্যাদিও রয়েছে) )। তদ্ব্যতীত, সার্ভারটি কোয়েরিটির পাশাপাশি এটি হতে পারে (উদাহরণস্বরূপ, ক্যোয়ারির জন্য আচ্ছাদন সূচক ব্যবহার করুন) অনুকূল করতে অক্ষম।
  2. কিছু সময়ের পরে আপনার টেবিলের কাঠামো পরিবর্তিত হতে পারে, তাই নির্বাচন করুন * কলামগুলির একটি আলাদা সেট ফিরে আসবে। সুতরাং, আপনার অ্যাপ্লিকেশনটি অপ্রত্যাশিত কাঠামোর একটি ডেটাসেট পেতে পারে এবং কোথাও নিচের দিকে প্রবাহিত হতে পারে। কলামগুলি স্পষ্টভাবে উল্লেখ করে গ্যারান্টি দেয় যে আপনি হয় পরিচিত কাঠামোর একটি ডেটাसेट পেয়েছেন বা ডাটাবেস স্তরে একটি পরিষ্কার ত্রুটি পেয়েছেন (যেমন 'কলামটি পাওয়া যায়নি')।

অবশ্যই, এটি একটি ছোট এবং সাধারণ ব্যবস্থার জন্য খুব বেশি গুরুত্বপূর্ণ নয়।


4

পারফরম্যান্স অনুযায়ী, নির্দিষ্ট কলামগুলির সাথে নির্বাচন দ্রুত হতে পারে (সমস্ত ডেটাতে পড়ার দরকার নেই)। যদি আপনার ক্যোয়ারীটি সত্যই সমস্ত কলাম ব্যবহার করে তবে স্পষ্টত পরামিতিগুলি সহ নির্বাচন করুন। যে কোনও গতির পার্থক্য মূলত অলক্ষিতযোগ্য এবং ধ্রুবক-সময়ের কাছাকাছি থাকবে। একদিন আপনার স্কিমা পরিবর্তন হবে এবং এর কারণে সমস্যাগুলি প্রতিরোধের জন্য এটি ভাল বীমা।


আপনি বেশিরভাগ ডিবি দিয়ে যে চেকগুলি তৈরি করেছেন তা থেকে আপনি অদৃশ্যমানের বিষয়ে ভুল, এটি স্পষ্ট ছিল যে প্রতিটি কলাম নির্বাচন করা, এমনকি সেগুলি সমস্তই, আরও দ্রুত। কিছু ক্ষেত্রে এটি তিনগুণ দ্রুত ছিল।
শাহহার ওড়াদ

4

এখানে এখন পর্যন্ত প্রচুর ভাল কারণগুলির উত্তর দেওয়া হয়েছে, এখানে আরও একটি উল্লেখ করা হয়নি।

স্পষ্টভাবে কলামগুলির নামকরণ রাস্তার নিচে রক্ষণাবেক্ষণে আপনাকে সহায়তা করবে। এক পর্যায়ে আপনি পরিবর্তন বা সমস্যা সমাধানের জন্য যাচ্ছেন এবং নিজেকে "জিজ্ঞাসা করুন হ্যাকটি সেই কলামটি কোথায় ব্যবহৃত হয়েছে"।

যদি আপনার নামগুলি সুস্পষ্টভাবে তালিকাভুক্ত করা হয়, তবে সেই সমস্ত কলামের প্রতিটি রেফারেন্স - আপনার সমস্ত সঞ্চিত প্রক্রিয়া, দর্শন, ইত্যাদির মাধ্যমে - সহজ। আপনার ডিবি স্কিমাটির জন্য কেবল একটি তৈরি স্ক্রিপ্ট এবং এর মাধ্যমে পাঠ্য অনুসন্ধান সরিয়ে ফেলুন।


3

স্পষ্টতই কলামগুলি সংজ্ঞায়িত করছে, কারণ এসকিউএল সার্ভারকে সেগুলি টানতে কলামগুলিতে কোনও নজরদারি করতে হবে না। আপনি যদি কলামগুলি সংজ্ঞায়িত করেন তবে এসকিউএল সেই পদক্ষেপটি এড়িয়ে যেতে পারে।


এটি হ'ল: ১) অপ্রাসঙ্গিক, কারণ এসকিউএল সার্ভারকে যেভাবেই টেবিলের স্কিমাটি উল্লেখ করতে হবে (কলামের নামগুলি যাচাই করতে হবে বা পরিচিত-বৈধ কলামের নামগুলি অনুসন্ধান করতে হবে) 2) জিজ্ঞাসিত প্রশ্নের সাথে প্রাসঙ্গিক নয়, যেখানে সমস্ত কলামগুলি রেফারেন্স করা হচ্ছে। জিজ্ঞাসা করা কেবলমাত্র ইস্যুটি ভঙ্গুর ডাব্লু / স্কিমা পরিবর্তন।
আইডিস্পোজেবল

ডাউনভোটেড, কারণ এটি নির্বিশেষে কলামগুলি বৈধ করতে হবে।
জন গিব

3

আপনার প্রয়োজনীয় কলামগুলি নির্দিষ্ট করে দেওয়া ভাল। আপনি যদি একবার এটি সম্পর্কে চিন্তা করেন, এসকিউএলকে আপনি যখনই জিজ্ঞাসা করবেন প্রত্যেকবার "wtf *" ভাবতে হবে না। তারপরে, পরে কোনও ব্যক্তি আপনার স্বেচ্ছায় সারণীতে কলামগুলি যুক্ত করতে পারে যা আপনার প্রশ্নের প্রয়োজন নেই এবং আপনার কলামগুলির সমস্ত উল্লেখ করে আপনি সেই ক্ষেত্রে আরও ভাল হতে পারবেন।


1
এটি সত্য নয়: এসকিউএল সার্ভারকে অবশ্যই প্রতিটি কলামটি বিশ্লেষণ করতে হবে এবং এটি ক্যাটালগগুলিতে বিদ্যমান কিনা তা দেখতে হবে, যদিও এটি জানে যে "*" (এবং হ্যাঁ, * সমস্ত কোলে প্রসারিত)। যেভাবেই হোক, ডিবিএমএসের পক্ষে দু'টি একটি করা তুচ্ছভাবে সহজ (যদি আপনার 24,000 কলাম না থাকে) তবে আমি বাজি
ধরছি এটি উভয়ভাবেই

আমি মনে করি যে আরও ভাল পয়েন্টটি অনেকগুলি অনুপস্থিত এবং দুর্ভাগ্যক্রমে, এই উত্তরটি কেবলমাত্র দ্বিতীয়টিকে সম্বোধন করে, এটি হ'ল যদি স্কিমা / টেবিলের পরিবর্তন ঘটে (যেমন নতুন কলাম যুক্ত হয়) তবে এটি জিনিসগুলিকে ভাঙ্গবে না।
শান হ্যানলি

1
এটি সম্পূর্ণরূপে ধুয়েছে * প্রসারণের জন্য কলামগুলি অনুসন্ধান করা যেমন প্রদত্ত কলামের নামগুলি যাচাই করার সমান।
পরিচয়যোগ্য

3

"সিলেক্ট *" সমস্যাটি হ'ল ডেটা আনার সম্ভাবনা যা আপনার সত্যই প্রয়োজন হয় না। আসল ডাটাবেস ক্যোয়ারির সময়, নির্বাচিত কলামগুলি সত্যই গণিতে যুক্ত হয় না। আপনার ক্লায়েন্টের কাছে ডেটা ট্রান্সপোর্টকে সত্যই "ভারী" বলতে বোঝায় এবং যে কলামটি আপনার সত্যই প্রয়োজন হয় না তা হ'ল নেটওয়ার্ক ব্যান্ডউইদথ নষ্ট করা এবং আপনার ফিরে আসার জন্য অপেক্ষা করা সময়ের সাথে যুক্ত করা।

এমনকি যদি আপনি "নির্বাচন করুন ..." "থেকে আনা সমস্ত কলামগুলি ব্যবহার করেন তবে এটি এখনই। ভবিষ্যতে আপনি যদি সারণি / দর্শন বিন্যাস পরিবর্তন করেন এবং আরও কলামগুলি যুক্ত করেন তবে আপনার নির্বাচিতগুলিতে আপনার প্রয়োজন না থাকলেও আপনি এটি আনতে শুরু করবেন।

আর একটি পয়েন্ট যেখানে একটি "নির্বাচন করুন" "বিবৃতিটি খারাপ তা হল ভিউ ক্রিয়েশন। যদি আপনি "সিলেক্ট *" ব্যবহার করে একটি ভিউ তৈরি করেন এবং পরে আপনার টেবিলটিতে কলামগুলি যুক্ত করেন তবে দেখুন সংজ্ঞা এবং ফিরিয়ে দেওয়া ডেটা মেলে না এবং তাদের আবার কাজ করার জন্য আপনার মতামতগুলি পুনরায় সংকলন করতে হবে।

আমি জানি যে "সিলেক্ট *" লেখাটি লোভনীয়, কারণ আমি আমার প্রশ্নের সমস্ত ক্ষেত্র ম্যানুয়ালি উল্লেখ করতে পছন্দ করি না, তবে যখন আপনার সিস্টেমটি বিকশিত হতে শুরু করবে তখন আপনি দেখতে পাবেন যে এই অতিরিক্ত সময় ব্যয় করার পক্ষে এটি উপযুক্ত worth / আপনার মতামতগুলিতে বাগগুলি সরাতে বা আপনার অ্যাপ্লিকেশনটি অনুকূলকরণের চেয়ে বেশি সময় এবং প্রচেষ্টা ব্যয় করার চেয়ে ক্ষেত্রগুলি নির্দিষ্ট করার ক্ষেত্রে প্রচেষ্টা।


VIEWs এ বিষয়টি অত্যন্ত গুরুত্বপূর্ণ। আপনি যদি টেবিলের সাথে কলামগুলি যোগ করেন তবে আপনি সমস্ত কলামগুলি পাবেন না (যদিও * আপনাকে কী ভাববে তা সত্ত্বেও) তারা টেবিলের আসল বিন্যাসের সাথে মেলে না।
ইউরো মিশেল্লি

3

স্পষ্টত কলামগুলি তালিকা সম্পাদন করা কার্য সম্পাদনের জন্য ভাল, পাগল হয়ে উঠবেন না।

সুতরাং আপনি যদি সমস্ত ডেটা ব্যবহার করেন তবে সরলতার জন্য নির্বাচন করুন * চেষ্টা করুন (অনেকগুলি কলাম রয়েছে এবং একটি যোগদানের কথা কল্পনা করুন ... কোয়েরিটি ভয়ঙ্কর হয়ে উঠতে পারে)। তারপরে - পরিমাপ করুন। স্পষ্টভাবে তালিকাভুক্ত কলামের নামগুলির সাথে ক্যোয়ারির সাথে তুলনা করুন।

কর্মক্ষমতা সম্পর্কে অনুমান করবেন না, এটি পরিমাপ করুন!

সুস্পষ্ট তালিকা সর্বাধিক সাহায্য করে যখন আপনার কাছে বড় ডেটাযুক্ত কোনও কলাম থাকে (যেমন কোনও পোস্ট বা নিবন্ধের মূল অংশ), এবং প্রদত্ত কোয়েরিতে এটির প্রয়োজন হয় না। তারপরে আপনার উত্তরে এটি না ফিরিয়ে ডিবি সার্ভার সময়, ব্যান্ডউইথ এবং ডিস্কের মাধ্যমে আউটপুট সাশ্রয় করতে পারে। আপনার প্রশ্নের ফলাফলটি আরও ছোট হবে, যা কোনও ক্যোয়ারী ক্যাশের জন্য ভাল।


3

আপনার সত্যিকার অর্থে কেবল আপনার প্রয়োজন ক্ষেত্র এবং কেবলমাত্র প্রয়োজনীয় সংখ্যা নির্বাচন করা উচিত

SELECT Field1, Field2 FROM SomeTable WHERE --(constraints)

ডাটাবেসের বাইরে গতিশীল প্রশ্নগুলি ইনজেকশন আক্রমণ এবং ত্রুটিযুক্ত ডেটার ঝুঁকি চালায়। সাধারণত আপনি সঞ্চিত প্রক্রিয়া বা প্যারামিটারাইজড কোয়েরিগুলি ব্যবহার করে এটি পেতে পারেন। এছাড়াও (যদিও সমস্যাটি আসলে তেমনটি নয়) সার্ভারকে প্রতিটি সময় ডায়নামিক ক্যোয়ারী কার্যকর করার সময় একটি এক্সিকিউশন প্ল্যান তৈরি করতে হয়।


"প্রতিটি সময় ডায়নামিক ক্যোয়ারি কার্যকর করা হলে সার্ভারকে একটি এক্সিকিউশন প্ল্যান তৈরি করতে হয়" যা আমি ধরে নিয়েছি ক্যোরির গতি কমিয়ে দেয়। ধন্যবাদ।
অঙ্কুর

ডায়নামিক এসকিএল ব্যবহারের পারফরম্যান্সের সমস্যাগুলি সম্ভবত খুব উচ্চ লোডের দৃশ্যে উপলব্ধি করা হবে, দক্ষতার সাথে ক্যোয়ারী পরিকল্পনাগুলি পরিচালনা করতে এসকিএল সার্ভারটি বেশ ভাল।
ম্যাথু অ্যাবট

2

আপনি * বা কলামগুলি ব্যবহার করে নির্বাচন করুন সমানভাবে কার্যকর (বেগের শর্তে) is

পার্থক্যটি স্মৃতি সম্পর্কে, গতি নয়। আপনি যখন কয়েকটি কলাম নির্বাচন করেন তখন এসকিউএল সার্ভারকে আপনার জিজ্ঞাসাটি পরিবেশন করতে মেমরি স্পেস বরাদ্দ করতে হবে, আপনি অনুরোধ করেছেন এমন সমস্ত কলামগুলির জন্য সমস্ত ডেটা, এমনকি যদি আপনি কেবল তার মধ্যে একটি ব্যবহার করেন।

পারফরম্যান্সের দিক থেকে গুরুত্বপূর্ণ বিষয় হ'ল এক্সেসকিউশন প্ল্যান যা ঘুরিয়ে আপনার WHWEE ক্লজ এবং জয়েন্টস, আউটর জয়েনের সংখ্যার উপর নির্ভর করে ...

আপনার প্রশ্নের জন্য কেবল নির্বাচন করুন * ব্যবহার করুন। আপনার যদি সমস্ত কলামের প্রয়োজন হয় তবে পারফরম্যান্সের কোনও পার্থক্য নেই।


2

* সুস্পষ্ট ক্ষেত্রের নাম বনাম * ব্যবহার করা দ্রুত নয়, যদি এবং কেবলমাত্র, আপনার সমস্ত ক্ষেত্রের ডেটা নেওয়া দরকার।

আপনার ক্লায়েন্ট সফ্টওয়্যারটি ফেরত ক্ষেত্রগুলির ক্রমের উপর নির্ভর করবে না, সুতরাং এটিও একটি বাজে কথা।

এবং এটি সম্ভব (যদিও সম্ভাবনা নেই) আপনার ব্যবহারের সমস্ত ক্ষেত্রের প্রয়োজন because কারণ আপনি এখনও জানেন না কোন ক্ষেত্রগুলি বিদ্যমান (খুব গতিশীল ডাটাবেস কাঠামো মনে করুন)।

সুস্পষ্ট ক্ষেত্রের নাম ব্যবহারের আর একটি অসুবিধা হ'ল যদি সেগুলির মধ্যে অনেকগুলি থাকে এবং সেগুলি দীর্ঘ হয় তবে এটি কোড এবং / অথবা ক্যোয়ারী লগ পড়া আরও কঠিন করে তোলে।

সুতরাং নিয়মটি হ'ল: আপনার যদি সমস্ত ক্ষেত্রের প্রয়োজন হয় তবে * ব্যবহার করুন, আপনার যদি কেবল একটি উপসেট প্রয়োজন হয় তবে তাদের নাম স্পষ্ট করে দিন।


2

ফলাফল খুব বিশাল। এসকিউএল ইঞ্জিন থেকে ক্লায়েন্টকে ফল উত্পন্ন এবং প্রেরণে এটি ধীর।

ক্লায়েন্ট সাইড, জেনেরিক প্রোগ্রামিং পরিবেশ হিসাবে, ফলাফলগুলি ফিল্টার এবং প্রক্রিয়া করার জন্য নকশাকৃত নয় এবং করা উচিত নয় (যেমন WHERE ধারা, অর্ডার ধারা) যেমন সারিগুলির সংখ্যা বিশাল হতে পারে (যেমন, কয়েক মিলিয়ন সারি)।


সুতরাং যদি আপনাকে প্রকৃতপক্ষে সমস্ত বিভিন্ন কলামগুলি ব্যবহার করার দরকার পড়েছিল তবে তা ঠিক হবে ... এবং যদি আপনার ডাটাবেস এবং অ্যাপ্লিকেশনটি আবার একই সার্ভারে বসে থাকে, তবে এটি কোনও তাত্পর্য রাখে না?
অঙ্কুর

@ আঙ্কুর: এমনকি একই সার্ভারে ডেটাবেস ইন্টারফেসের মাধ্যমে ডেটা প্রেরণের জন্য অনেক খরচ আছে।
কেনেটিএম

2

আপনি যে অ্যাপ্লিকেশনটিতে প্রত্যাশা করছেন প্রতিটি কলামের নামকরণও নিশ্চিত করে যে কেউ যদি সারণি পরিবর্তন করে তবে আপনার কলামগুলি এখনও বিরতি ফেলবে না যতক্ষণ না আপনার কলামগুলি এখনও উপস্থিত রয়েছে (কোনও ক্রমে)।


1

এটি আপনার ডিবি সার্ভারের সংস্করণে নির্ভর করে তবে এসকিউএল এর আধুনিক সংস্করণগুলি যেভাবেই পরিকল্পনাটিকে ক্যাশে করতে পারে। আমি বলতে চাই যে আপনার ডেটা অ্যাক্সেস কোড দিয়ে সর্বাধিক রক্ষণাবেক্ষণযোগ্য with


1

সারণীর কাঠামোর সম্ভাব্য ভবিষ্যতের পরিবর্তনের কারণে আপনি কোন কলামগুলি চান তা হ'ল বানানটি আরও ভাল অনুশীলন reason

আপনি যদি নিজের কোয়েরির ফলাফলগুলি সহ কোনও ডেটা কাঠামোকে জনপ্রিয় করতে একটি সূচক ভিত্তিক পদ্ধতির ব্যবহার করে ম্যানুয়ালি ডেটা পড়ছেন, তবে ভবিষ্যতে আপনি যখন কোনও কলাম যুক্ত করবেন / মুছবেন তখন কী ভুল হয়েছে তা বের করার চেষ্টা করতে আপনার মাথাব্যথা হবে।

দ্রুততর হিসাবে, আমি অন্যদের কাছে তাদের দক্ষতার জন্য পিছিয়ে দেব।


1

বেশিরভাগ সমস্যার মতো এটিও আপনি কী অর্জন করতে চান তার উপর নির্ভর করে। আপনি যদি এমন কোনও ডিবি গ্রিড তৈরি করতে চান যা কোনও সারণীতে সমস্ত কলামকে মঞ্জুরি দেয়, তবে "নির্বাচন করুন *" এর উত্তর। তবে, যদি আপনার কেবলমাত্র কয়েকটি কলামের প্রয়োজন হয় এবং কোয়েরি থেকে কলামগুলি যুক্ত করা বা মুছার কাজটি খুব কম হয় তবে তাদের পৃথকভাবে নির্দিষ্ট করুন specify

এটি সার্ভার থেকে আপনি যে পরিমাণ ডেটা স্থানান্তর করতে চান তার উপরও নির্ভর করে। যদি কলামগুলির মধ্যে একটি মেমো, গ্রাফিক, ব্লব ইত্যাদি হিসাবে সংজ্ঞায়িত হয় এবং আপনার সেই কলামটির প্রয়োজন না হয় তবে আপনি "নির্বাচন করুন *" ব্যবহার না করাই বা আপনার পুরো গুচ্ছ ডেটা পাবেন যা আপনি করেন না চান এবং আপনার অভিনয় ক্ষতিগ্রস্থ হতে পারে।


1

প্রত্যেকে যা বলেছে তার সাথে যুক্ত হতে, আপনি নির্বাচন করছেন এমন সমস্ত কলাম যদি একটি সূচীতে অন্তর্ভুক্ত থাকে তবে আপনার ফলাফল সেটটি এসকিউএল থেকে অতিরিক্ত ডেটা সন্ধান করার পরিবর্তে সূচী থেকে টানা হবে।



1

উপরের সবাই কী বলেছে, আরও:

আপনি যদি পঠনযোগ্য রক্ষণাবেক্ষণযোগ্য কোডের জন্য প্রয়াস চালিয়ে যাচ্ছেন তবে এমন কিছু করছেন:

নির্বাচন করুন foo, উইজেট থেকে বার;

তাত্ক্ষণিকভাবে পাঠযোগ্য এবং উদ্দেশ্য দেখায়। যদি আপনি সেই কলটি করেন তবে আপনি কী ফিরে পাচ্ছেন তা জানতে পারবেন। যদি উইজেটগুলিতে কেবল ফু এবং বার কলাম থাকে, তবে * নির্বাচন করার অর্থ আপনি এখনও কী ফিরে আসছেন সে সম্পর্কে আপনার এখনও চিন্তা করতে হবে, ক্রমটি সঠিকভাবে ম্যাপ করা হয়েছে কিনা তা নিশ্চিত করুন However এবং বার, তারপরে আপনার কোড অগোছালো হয়ে যায় যখন আপনি কোনও ওয়াইল্ডকার্ডের জন্য জিজ্ঞাসা করেন এবং তারপরে যা কিছু ফিরে আসে কেবল তার কিছু ব্যবহার করে।


1

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

এটি এসকিউএল সার্ভারে কলামগুলি তালিকাভুক্ত করা শক্ত বা এমনকি সময়সাপেক্ষও নয়। আপনি কেবল তাদের বস্তু ব্রাউজার থেকে টেনে আনুন (শব্দ কলামগুলি থেকে টেনে এনে আপনি সব কিছু পেতে পারেন)। আপনার সিস্টেমে স্থায়ী পারফরম্যান্স চাপার জন্য (এটি সূচকগুলির ব্যবহার হ্রাস করতে পারে এবং নেটওয়ার্কের উপর অপ্রয়োজনীয় ডেটা প্রেরণ ব্যয়বহুল কারণ) এবং এটি সম্ভবত ডেটাবেস পরিবর্তনের ফলে আপনার অপ্রত্যাশিত সমস্যা হতে পারে (কখনও কখনও কলাম যুক্ত হয়ে যায় যে আপনি চান না যে ব্যবহারকারী উদাহরণস্বরূপ দেখতে পাবে) কেবলমাত্র এক মিনিটেরও কম সময় সাশ্রয় করার জন্য স্বল্পদৃষ্টি এবং পেশাদারহীন।


1

পারফরম্যান্স অনুযায়ী আমি মন্তব্যগুলি দেখেছি যে উভয়ই সমান। তবে ব্যবহারের দিকটি এখানে কিছু 'এবং' রয়েছে

যখন আপনি কোনও ক্যোয়ারিতে একটি (নির্বাচন করুন *) ব্যবহার করেন এবং কেউ যদি টেবিলটি পরিবর্তন করে এবং নতুন ক্ষেত্রগুলি যুক্ত করেন যা পূর্বের ক্যোয়ারির জন্য প্রয়োজন হয় না এটি একটি অপ্রয়োজনীয় ওভারহেড। এবং সদ্য যুক্ত হওয়া ক্ষেত্রটি যদি একটি ব্লব বা কোনও চিত্র ক্ষেত্র হয় তবে ??? আপনার প্রশ্নের উত্তর সময় সত্যিই ধীর হতে চলেছে।

অন্যদিকে আপনি যদি একটি (col1, col2, .. নির্বাচন করুন) ব্যবহার করেন এবং যদি টেবিলটি পরিবর্তিত হয় এবং নতুন ক্ষেত্র যুক্ত হয় এবং ফলাফল ক্ষেত্রগুলিতে যদি সেই ক্ষেত্রগুলি প্রয়োজন হয় তবে আপনাকে সর্বদা সারণী পরিবর্তনের পরে আপনার নির্বাচিত ক্যোয়ারীটি সম্পাদনা করতে হবে।

তবে আমি সর্বদা আপনার কোয়েরিতে কল 1, কল 2, ... ব্যবহার করার পরামর্শ দিচ্ছি এবং যদি সারণীটি পরে পরিবর্তন হয় তবে ...


0

আপনি প্রতিবার নির্বাচন করতে চান কলামগুলি একেবারে সংজ্ঞায়িত করুন। না করার কোনও কারণ নেই এবং পারফরম্যান্সের উন্নতিটি এটির পক্ষে উপযুক্ত।

তাদের কখনই "নির্বাচন করুন" "বিকল্পটি দেওয়া উচিত হয়নি should


0

আপনার যদি প্রতিটি কলামের প্রয়োজন হয় তবে কেবল নির্বাচন করুন * তবে মনে রাখবেন যে ফলাফলগুলি গ্রাহক হওয়ার সময় আদেশটি সম্ভাব্যভাবে পরিবর্তিত হতে পারে, সূচি দ্বারা নয় name

* কীভাবে * তালিকা পেতে হবে সে সম্পর্কে মন্তব্যগুলি উপেক্ষা করব - সম্ভাবনাগুলি নামকরণকৃত কলামগুলি পার্সিং এবং বৈধকরণের প্রক্রিয়াজাতকরণের সময় সমান, যদি না হয় তবে বেশি। অকালে অপ্টিমাইজ করবেন না ;-)


0

মৃত্যুদন্ড কার্যকর করার ক্ষেত্রে আমি কোনও উল্লেখযোগ্য পার্থক্য সম্পর্কে অবগত নই। তবে প্রোগ্রামারদের দক্ষতার জন্য আমি ক্ষেত্রগুলির নাম লিখব কারণ

  • আপনি যদি নম্বরটি অনুসারে সূচকের প্রয়োজন হয় বা আপনার ড্রাইভার যদি ব্লব-মানগুলিতে মজার আচরণ করে এবং আপনি একটি নির্দিষ্ট আদেশের প্রয়োজন হয় তবে আপনি অর্ডারটি জানেন You
  • আপনি কেবলমাত্র আপনার প্রয়োজনীয় ক্ষেত্রগুলি পড়েন, যদি আপনার আরও বেশি ক্ষেত্র যুক্ত করা হয়
  • আপনি যদি কোনও ক্ষেত্রের ভুল বানান বা নাম পরিবর্তন করে থাকেন তবে কোনও রেকর্ডসেট / সারি থেকে খালি মান নয় তবে আপনি একটি স্কেল-ত্রুটি পাবেন
  • কী চলছে তা আপনি ভাল করে পড়তে পারেন।

0

আরে, ব্যবহারিক হতে। প্রোটোটাইপ করার সময় নির্বাচন করুন * প্রয়োগ করুন এবং প্রয়োগ ও প্রয়োগের সময় নির্দিষ্ট কলামগুলি নির্বাচন করুন। একটি বাস্তবায়ন পরিকল্পনার দৃষ্টিকোণ থেকে উভয়ই আধুনিক সিস্টেমে তুলনামূলকভাবে অভিন্ন। তবে, নির্দিষ্ট কলামগুলি নির্বাচন করা সেই পরিমাণের পরিমাণ সীমিত করে যা ডিস্ক থেকে পুনরুদ্ধার করতে হবে, মেমোরিতে সঞ্চয় করা হবে এবং নেটওয়ার্কের মাধ্যমে প্রেরণ করতে হবে।

শেষ পর্যন্ত সেরা পরিকল্পনাটি নির্দিষ্ট কলামগুলি নির্বাচন করা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.