একটি মাইএসকিউএল ডেটাবেস কীভাবে বড় হতে পারে, তার আগে কর্মক্ষমতা নিঃশব্দ করা শুরু হয়

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

  • ভৌত ডাটাবেস আকার কি?
  • রেকর্ড সংখ্যা সংখ্যা কি?
  • কোন কর্মক্ষমতা হ্রাস রৈখিক বা নিবিড়?

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

0

13 উত্তর

ভৌত ডাটাবেস আকার ব্যাপার না। রেকর্ড সংখ্যা কোন ব্যাপার না।

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

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

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

0
যোগ
যদি ডাটাবেসের আকার 7 গিগাবাইটের বেশি হয় তবে কি হবে। যে সীমা সময় প্রভাবিত হয় না?
যোগ লেখক Hacker, উৎস

জটিল সংযোজনের জন্যও দেখুন। লেনদেনের ভলিউম ছাড়াও লেনদেন জটিলতাটি একটি বড় ফ্যাক্টর হতে পারে।

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

0
যোগ

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

2 গিগাবাইট সত্যিই একটি "বড়" ডাটাবেস হিসাবে গণনা করা হয় না - এটি একটি মাঝারি আকার বেশি

0
যোগ

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

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

-> Have a look at partitioning.

0
যোগ

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

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

আপনার টেবিলগুলি কেমন দেখাবে তার উপর ভিত্তি করে রেকর্ডগুলির সংখ্যাটি গুরুত্বপূর্ণ। এটি একটি varchar ক্ষেত্র অনেক বা একটি ints বা longs মাত্র কয়েকটি পার্থক্য।

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

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

0
যোগ

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

0
যোগ

বিবেচনায় একটি বিন্দু এছাড়াও দিন দিন সিস্টেম এবং তথ্য উদ্দেশ্য।

উদাহরণস্বরূপ, গাড়িগুলির জিপিএস পর্যবেক্ষণের একটি সিস্টেমের জন্য পূর্ববর্তী মাসগুলিতে গাড়ির পজিশনের প্রাসঙ্গিক ক্যোয়ারী ডেটা নেই।

অতএব সম্ভাব্য পরামর্শের জন্য তথ্য ঐতিহাসিক সারণিতে প্রেরণ করা যায় এবং প্রতিদিনের ক্যোয়ারীর মৃত্যুদন্ডের সময়সীমা কমানো যায়।

0
যোগ

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

0
যোগ
যখন এটা সত্য যে স্কিলিংয়ের সমস্যাটি সর্বশ্রেষ্ঠরূপে দেখানো হয়, তবে এটি সম্পূর্ণভাবে সম্পর্কিত নয় যে মাইএসকিউএল কীভাবে স্কেল করে।
যোগ লেখক Lie Ryan, উৎস

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

0
যোগ

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

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

ডেটাবেস কর্মক্ষমতা উন্নতির উপায় সবসময় আছে

0
যোগ

It depends on your query and validation.

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

0
যোগ

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

0
যোগ

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

অনুভূমিকভাবে স্কেলিং এসকিউএলও বেশ বেদনাদায়ক, এবং বেশিরভাগ ক্ষেত্রেই এটি ব্যবহার করে বাড়ে যাতে আপনি সম্ভবত আপনার তথ্য এসকিউএলের মধ্যে প্রথম স্থানে রাখার চেষ্টা করেন না। Shards, ক্রীতদাসদের পড়া, মাল্টি মাস্টার, এবং আল, তারা সব সত্যিই shitty সমাধান যা আপনি ডিবি সঙ্গে কি সবকিছু জটিলতা যোগ, এবং তাদের এক সমস্যা solves না; শুধুমাত্র কিছু উপায়ে এটি mitigates। আমি দৃঢ়ভাবে আপনার মাইএসকিউএল (অথবা সত্যিই কোন এসকিউএল) আউট কিছু আপনার তথ্য স্থানান্তর যখন আপনি একটি আকারের একটি ডেটাসেট সমীপবর্তী যেখানে এই ধরনের জিনিস একটি সমস্যা হয়ে উঠতে পরামর্শ সুপারিশ করবে।

0
যোগ