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


302

কোন মাইএসকিউএল ডাটাবেস কর্মক্ষমতা হারাতে শুরু করে?

  • শারীরিক ডাটাবেস আকার কি ব্যাপার?
  • রেকর্ডের সংখ্যা কি গুরুত্বপূর্ণ?
  • কোনও কর্মক্ষমতা অবক্ষয় লিনিয়ার বা ঘনিষ্ঠ?

আমার কাছে আমি প্রায় একটি বৃহত ডাটাবেস বলে বিশ্বাস করি, প্রায় 15 এম রেকর্ড যা প্রায় 2 জিবি নেয়। এই সংখ্যার উপর ভিত্তি করে, ডেটা পরিষ্কার করার জন্য কি আমার জন্য কোনও উত্সাহ আছে, বা আমি আরও কয়েক বছর ধরে এটিকে স্কেলিং চালিয়ে যাওয়ার অনুমতি দেওয়া কি নিরাপদ?

উত্তর:


203

শারীরিক ডাটাবেসের আকার কোনও ব্যাপার নয়। রেকর্ডের সংখ্যা কোনও বিষয় নয়।

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

আমি আমার কাছে 10 গিগাবাইট পর্যন্ত পৌঁছাতে পেরেছি, কেবলমাত্র সংমিত সংখ্যার সংযোগ রয়েছে এবং এটি অনুরোধগুলি ঠিক জরিমানা করেছে।

আমি প্রথমে আপনার সূচিগুলিতে ফোকাস করব, তারপরে আপনার ওএসে একটি সার্ভার অ্যাডমিন তাকান, এবং যদি এটি সমস্ত কিছু সহায়তা না করে তবে একটি মাস্টার / স্লেভ কনফিগারেশন বাস্তবায়নের সময় হতে পারে।


ডাটাবেসের আকার 7 গিগাবাইটের বেশি হলে কী হবে। বাস্তবে সময় সীমা কার্যকর হয় না?
হ্যাকার

89

সাধারণভাবে এটি একটি খুব সূক্ষ্ম সমস্যা এবং যা কিছু তুচ্ছ নয়। আমি আপনাকে mysqlperformanceblog.com এবং উচ্চ পারফরম্যান্স মাইএসকিউএল পড়তে উত্সাহিত করি । আমি সত্যিই মনে করি এটির জন্য কোনও সাধারণ উত্তর নেই।

আমি এমন একটি প্রকল্পে কাজ করছি যার প্রায় 1TB ডেটা সহ একটি মাইএসকিউএল ডাটাবেস রয়েছে। সর্বাধিক গুরুত্বপূর্ণ স্কেলাবিলিটি ফ্যাক্টরটি হল র্যাম। যদি আপনার টেবিলগুলির সূচকগুলি মেমরির সাথে ফিট করে এবং আপনার প্রশ্নের উচ্চতর অনুকূলিত হয়, আপনি একটি গড় মেশিনের সাথে যুক্তিসঙ্গত পরিমাণে পরিবেশন করতে পারেন।

আপনার টেবিলগুলি দেখতে কেমন তা নির্ভর করে রেকর্ডের সংখ্যা গুরুত্বপূর্ণ matter প্রচুর ভার্চার ক্ষেত্র বা কেবল কয়েকটি দাগ বা লম্বা থাকা আপনার পার্থক্য।

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

এই ইস্যুতে অনেক কিছুই রয়েছে এবং অনেক ক্ষেত্রে শয়তান বিবরণে রয়েছে।


45

ডাটাবেস আকার মাপসই । যদি আপনার এক মিলিয়নেরও বেশি রেকর্ড সহ একাধিক টেবিল থাকে তবে কার্য সম্পাদনটি হ্রাস করতে শুরু করে। রেকর্ডের সংখ্যা অবশ্যই কার্য সম্পাদনকে প্রভাবিত করে: মাইএসকিউএল বড় টেবিলগুলির সাথে ধীর হতে পারে । আপনি যদি এক মিলিয়ন রেকর্ড হিট করেন তবে সূচকগুলি সঠিক না করা হলে আপনি কার্য সম্পাদন সমস্যা পাবেন (উদাহরণস্বরূপ "WHERE বিবৃতিতে" ক্ষেত্রগুলির জন্য কোনও সূচকগুলি বা "শর্তাবলীতে যোগ দেয়")। আপনি যদি 10 মিলিয়ন রেকর্ড হিট করেন তবে আপনার সমস্ত সূচক সঠিক থাকলেও আপনি পারফরম্যান্স সমস্যা পেতে শুরু করবেন। হার্ডওয়্যার আপগ্রেড - আরও মেমরি এবং আরও প্রসেসর শক্তি যোগ করা, বিশেষত মেমরি - প্রায়শই কমপক্ষে একটি নির্দিষ্ট ডিগ্রীতে কর্মক্ষমতা বাড়িয়ে সবচেয়ে গুরুতর সমস্যা হ্রাস করতে সহায়তা করে। উদাহরণ স্বরূপবেসক্যাম্প ডাটাবেস সার্ভারের জন্য 37 সিগন্যাল 32 জিবি র‌্যাম থেকে 128 গিগাবাইট র‌্যামে গেছে


23

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

সেটা সত্য. আর একটি জিনিস যা সাধারণত কাজ করে তা হ'ল বারবার কাজ করা ডেটার পরিমাণ হ্রাস করা। আপনার যদি "পুরাতন ডেটা" এবং "নতুন ডেটা" থাকে এবং আপনার প্রশ্নের 99% নতুন ডেটা নিয়ে কাজ করে তবে কেবলমাত্র সমস্ত পুরানো ডেটা অন্য টেবিলে সরিয়ে দিন - এবং এটির দিকে তাকান না;)

-> বিভাজন দেখুন


21

2 জিবি এবং প্রায় 15 এম রেকর্ড একটি খুব ছোট ডাটাবেস - আমি একটি পেন্টিয়াম III (!) এ অনেক বড় চালিয়েছি এবং এখনও সবকিছু বেশ দ্রুতগতিতে চালিত হয়েছে .. যদি আপনার মন্থর হয় তবে এটি কোনও ডাটাবেস / অ্যাপ্লিকেশন ডিজাইনের সমস্যা, কোনও মাইএসকিএল নয় এক.


20

"ডাটাবেস পারফরম্যান্স", "ক্যোয়ারী পারফরম্যান্স" সম্পর্কে এখানে কথা বলা অর্থহীন term এবং উত্তরটি হল: এটি ক্যোয়ারির উপর নির্ভর করে, এটি যে ডেটা এটি পরিচালনা করে, সূচকগুলি, হার্ডওয়্যার ইত্যাদি You

2 জিবি আসলেই "বৃহত" ডাটাবেস হিসাবে গণনা করে না - এটি মাঝারি আকারের বেশি।


11

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

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


এটি মাইএসকিউএল থেকে সরিয়ে .. অন্য মাইএসকিউএল এ?
পেসারিয়ার

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

10

জটিল যোগদানের জন্যও নজর রাখুন। লেনদেনের জটিলতা লেনদেনের পরিমাণ ছাড়াও একটি বড় কারণ হতে পারে।

ভারী প্রশ্নের পুনরুদ্ধার কখনও কখনও একটি বড় কর্মক্ষমতা উত্সাহ দেয়।


9

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


3
যদিও এটি সত্য যে স্কেলিংয়ের বিষয়টি সর্বাধিকভাবে holistically দেখা হয়, কিন্তু এটি মাইএসকিউএল নিজেই কীভাবে স্কেল করে তার সাথে এটি সম্পূর্ণরূপে সম্পর্কিত নয়।
মিথ্যা রায়ান

9

বিবেচনার জন্য একটি বিষয় হ'ল প্রতিদিনের ব্যবস্থা এবং ডেটাও।

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

অতএব সম্ভাব্য পরামর্শের জন্য ডেটা অন্যান্য historicalতিহাসিক টেবিলগুলিতে প্রেরণ করা যেতে পারে এবং দিনের প্রশ্নে মৃত্যুদন্ড কার্যকর করার সময়কে হ্রাস করতে পারে।


5

যদি ডাটাবেসটি সঠিকভাবে ডিজাইন না করা হয় তবে কয়েক হাজার সারির ক্ষেত্রে পারফরম্যান্স হ্রাস পেতে পারে।

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

ডাটাবেস কর্মক্ষমতা উন্নত করার জন্য সর্বদা উপায় রয়েছে।


3

এটি আপনার প্রশ্ন এবং বৈধতার উপর নির্ভর করে।

উদাহরণস্বরূপ, আমি 100,000 ওষুধের একটি টেবিলের সাথে কাজ করেছি যার একটি কলাম জেনেরিক নাম রয়েছে যেখানে এটির এই টেবিলে প্রতিটি ওষুধের জন্য 15 টিরও বেশি অক্ষর রয়েছে I আমি দুটি টেবিলের মধ্যে ড্রাগের জেনেরিক নাম তুলনা করতে একটি জিজ্ঞাসা রেখেছি query প্রশ্নটি নেয় চালানোর জন্য আরও কয়েক মিনিট S একই, আপনি যদি ড্রাগ আইডেক্স ব্যবহার করে ওষুধের তুলনা করেন, একটি আইডি কলাম ব্যবহার করে (উপরে যেমন বলা হয়েছে) তবে এটি কয়েক সেকেন্ড সময় নেয়।


1

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


0

না এটা আসলে কিছু যায় আসে না। মাইএসকিউএল গতি প্রতি সেকেন্ডে প্রায় 7 মিলিয়ন সারি। সুতরাং আপনি এটি কিছুটা স্কেল করতে পারেন


আপনার এটার কোনও উত্স আছে?
শোবি

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

0

অনুসন্ধানের পারফরম্যান্স মূলত স্ক্যান করার জন্য প্রয়োজনীয় রেকর্ডগুলির সংখ্যার উপর নির্ভর করে, সূচিগুলি এতে উচ্চ ভূমিকা পালন করে এবং সূচী ডেটা আকার সারি সংখ্যা এবং সূচকের সংখ্যার সাথে সমানুপাতিক।

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

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

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

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