স্কিমা ডিজাইনের পূর্বে আপনার প্রয়োজনীয়তাগুলি বুঝতে (যদি সম্ভব হয়)।
ডেটা সম্পর্কে জানুন, 1) সূচি 2) ব্যবহৃত ধরণের স্টোরেজ, 3) বিক্রেতা ইঞ্জিন বা বৈশিষ্ট্যগুলি; অর্থাত্ ... ক্যাশিং, মেমরির ক্ষমতা 4) ডেটাটাইপস 5) টেবিলের আকার 6) ক্যোয়ারির ফ্রিকোয়েন্সি 7) উত্সটি ভাগ করা থাকলে সম্পর্কিত কাজের চাপগুলি 8) পরীক্ষা
ক) প্রয়োজনীয়তা পৃথক হবে। যদি হার্ডওয়্যার প্রত্যাশিত কাজের চাপকে সমর্থন না করতে পারে তবে কীভাবে কাজের চাপে প্রয়োজনীয়তা সরবরাহ করতে হয় তা আপনার পুনরায় মূল্যায়ন করা উচিত। সারণিতে সংযোজন কলাম সম্পর্কিত। যদি ডাটাবেস ভিউ সমর্থন করে, আপনি নির্দিষ্ট নামযুক্ত কলামগুলি (বনাম। নির্বাচন করুন '*') দিয়ে নির্দিষ্ট ডেটাটির একটি সূচক (?) দর্শন তৈরি করতে পারেন। "আবর্জনা-ইন" -> "আবর্জনা-আউট" সিন্ড্রোমে কখনই চালিত হন না তা পর্যায়ক্রমে আপনার ডেটা এবং স্কিমা পর্যালোচনা করুন।
ধরে নিচ্ছি এর আর কোনও সমাধান নেই; আপনি নিম্নলিখিত অ্যাকাউন্টগুলিতে নিতে পারেন। সবসময় একটি সমস্যার একাধিক সমাধান থাকে।
1) সূচীকরণ: নির্বাচন করুন * একটি টেবিলস্ক্যান সম্পাদন করবে। বিভিন্ন কারণের উপর নির্ভর করে এটিতে একটি ডিস্ক সন্ধান এবং / অথবা অন্যান্য প্রশ্নের সাথে যুক্ত থাকতে পারে। যদি টেবিলটি বহুমুখী হয় তবে নিশ্চিত হয়ে নিন যে সমস্ত প্রশ্নগুলি পারফরম্যান্ট এবং নীচে আপনি টার্গেটের সময় সম্পাদন করেছেন। যদি প্রচুর পরিমাণে ডেটা থাকে এবং আপনার নেটওয়ার্ক বা অন্যান্য সংস্থান টিউন করা হয় না; আপনার এটি বিবেচনায় নেওয়া দরকার। ডাটাবেস একটি ভাগ পরিবেশ।
2) স্টোরেজ ধরণ। উদাহরণস্বরূপ: আপনি যদি এসএসডি, ডিস্ক বা মেমরি ব্যবহার করেন। I / O বার এবং সিস্টেমে / সিপিইউতে বোঝা আলাদা হবে।
3) ডিবিএ উচ্চতর পারফরম্যান্সের জন্য ডাটাবেস / টেবিলগুলি টিউন করতে পারে? যে কোনও কারণেই ধরে নিয়ে, দলগুলি সিদ্ধান্ত নিয়েছে যে '*' সমস্যাটির সেরা সমাধান; ডিবি বা টেবিলটি মেমরিতে লোড করা যায়? (বা অন্য পদ্ধতি ... সম্ভবত প্রতিক্রিয়াটি 2-3 সেকেন্ড বিলম্বের সাথে সাড়া দেওয়ার জন্য ডিজাইন করা হয়েছিল? --- যখন কোনও বিজ্ঞাপন সংস্থার আয় উপার্জনের জন্য খেলে ...)
4) বেসলাইন থেকে শুরু করুন। আপনার ডেটা প্রকারগুলি কীভাবে ফলাফল উপস্থাপন করা হবে তা বুঝুন Unders ছোট ডেটাটাইপস, ক্ষেত্রের সংখ্যা ফলাফল সেটে ফিরে আসা ডেটার পরিমাণ হ্রাস করে। এটি অন্যান্য সিস্টেমের প্রয়োজনের জন্য উপলব্ধ সংস্থানগুলিকে ছেড়ে দেয়। সিস্টেম সংস্থানগুলির সাধারণত একটি সীমা থাকে; স্থিরতা এবং অনুমানযোগ্য আচরণ নিশ্চিত করতে 'সর্বদা' এই সীমাগুলির নীচে কাজ করুন work
5) সারণী / তথ্য আকার। ছোট টেবিলের সাথে '*' নির্বাচন করা সাধারণ। এগুলি সাধারণত স্মৃতিতে ফিট করে এবং প্রতিক্রিয়ার সময়গুলি দ্রুত। আবার .... আপনার প্রয়োজনীয়তা পর্যালোচনা। বৈশিষ্ট্য বিন্দু জন্য পরিকল্পনা; সর্বদা বর্তমান এবং সম্ভাব্য ভবিষ্যতের প্রয়োজনগুলির জন্য পরিকল্পনা করুন।
)) ক্যোয়ারী / প্রশ্নগুলির ফ্রিকোয়েন্সি। সিস্টেমে অন্যান্য কাজের চাপ সম্পর্কে সচেতন হন। যদি এই কোয়েরিটি প্রতি সেকেন্ডে বন্ধ হয় এবং টেবিলটি ক্ষুদ্র হয়। ফলাফল সেটটি ক্যাশে / স্মৃতিতে থাকার জন্য ডিজাইন করা যেতে পারে। তবে, যদি কোয়েরিটি ঘন ঘন ব্যাচের প্রক্রিয়াটি ডেটা গিগাবাইট / টেরাবাইটের সাথে হয় ... তবে অন্যান্য কাজের চাপ প্রভাবিত হবে না তা নিশ্চিত করার জন্য অতিরিক্ত সংস্থান উত্সর্গ করা আপনার পক্ষে ভাল।
7) সম্পর্কিত কাজের চাপ। কীভাবে সংস্থানগুলি ব্যবহৃত হয় তা বুঝুন। নেটওয়ার্ক / সিস্টেম / ডাটাবেস / টেবিল / অ্যাপ্লিকেশন নিবেদিত, বা ভাগ করা হয়? কারা স্টেকহোল্ডার? এটি কি উত্পাদন, বিকাশ, বা কিউএর জন্য? এটি কি একটি অস্থায়ী "দ্রুত সমাধান"। আপনি পরিস্থিতি পরীক্ষা করেছেন? আপনি আজ অবাক হবেন যে আজকের হার্ডওয়্যারটিতে কতগুলি সমস্যা থাকতে পারে। (হ্যাঁ, পারফরম্যান্স দ্রুত ... তবে নকশা / পারফরম্যান্সটি এখনও অবনমিত হয়েছে)) সিস্টেমটি কি প্রতি সেকেন্ডে 5 কে-এর তুলনায় 10-10 ক্যোয়ারী বনাম 5-10 কোয়েরি করা দরকার? ডেটাবেস সার্ভার উত্সর্গীকৃত, বা অন্যান্য অ্যাপ্লিকেশনগুলি করে, মনিটরিং ভাগ করা সংস্থার উপর চালিত হয়। কিছু অ্যাপ্লিকেশন / ভাষা; ও / এস এর 100% মেমরি গ্রাস করবে বিভিন্ন লক্ষণ / সমস্যা সৃষ্টি করে।
8) পরীক্ষা: আপনার তত্ত্বগুলি পরীক্ষা করে দেখুন এবং আপনি যতটা পারেন তা বুঝতে পারেন। আপনার নির্বাচিত '*' ইস্যুটি একটি বড় ব্যাপার হতে পারে, বা এটি এমন কিছু হতে পারে যা আপনার এমনকি চিন্তারও দরকার নেই।
SELECT COUNT(*)
খারাপ হওয়া অবিশ্বাস্যভাবে পুরানো এবং পুরানো । উপর তথ্যের জন্যSELECT *
- দেখুন: stackoverflow.com/questions/1960036/…