মাইএসকিউএলে "ওভারহেড" এর অর্থ কী, এটি সম্পর্কে কী খারাপ, এবং কীভাবে এটি ঠিক করবেন?


157

সহজ প্রশ্ন, কিন্তু এটি এখন কিছুক্ষণের জন্য আমাকে ঘিরে রেখেছে ...

মাইএসকিউএলে "ওভারহেড" কী এবং আমি কি উদ্বিগ্ন হওয়া উচিত?

"টেবিলটি অপ্টিমাইজ করা" ক্লিক করা কি এটি বাস্তবের জন্য ঠিক করে?

উত্তর:


147

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

আপনি নিজের হার্ড ড্রাইভের ডিফ্র্যাগমেন্টিংয়ের সাথে 'টেবিলটি অপ্টিমাইজ করা' তুলনা করতে পারেন।

আমি উদ্ধৃতি:

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

এটি আপনার গাড়ীর তেল পরিবর্তন বা টিউন-আপ করার মতো। আপনার মনে হতে পারে যে আপনার সত্যিই দরকার নেই, তবে এটি করার মাধ্যমে আপনার গাড়িটি আরও ভাল চলবে, আপনি ভাল গ্যাস মাইলেজ পাবেন etc. ইত্যাদি। একটি গাড়ি যা প্রচুর মাইলেজ পায় তার জন্য প্রায়শই সুর করা প্রয়োজন। একটি ডাটাবেস যা ভারী ব্যবহার হয় একই প্রয়োজন। আপনি যদি অনেকগুলি আপডেট এবং / অথবা মুছে ফেলা অপারেশন করছেন, এবং বিশেষত যদি আপনার টেবিলগুলিতে পরিবর্তনশীল দৈর্ঘ্যের কলাম (ভ্রচার, পাঠ্য ইত্যাদি) থাকে তবে আপনার 'টিউনটি চালিয়ে যাওয়া দরকার।


1
@ যাস্পার অপ্টিমাইজেশনের সময়কালে কি টেবিলগুলি সম্পূর্ণ লক হয়ে যায় (পড়তে / লিখতে পারে না)?
পেসারিয়ার

4
সেই উদ্ধৃতিটি কোথা থেকে এসেছে? আমি গুগলে প্রচুর ফলাফল খুঁজে পাচ্ছি।
ইয়ান হান্টার

আমরা কীভাবে জানব যা বারবার ওভারহেডের কারণ হয়?
maen3d

প্রযুক্তিগত শর্তগুলি বিন্যাসে নির্বিশেষে নিখুঁত এবং সহজ উদাহরণের জন্য আপনাকে ধন্যবাদ।
shyammakwana.me

1
"সত্যই উচ্চ" হিসাবে বিবেচনা করা হয়?
টিভি-সি -15

87

যদি আপনি যে জিনিসটির জন্য phpMyAdminকল করেন সেই বিষয়ে কথা বলছেন overhead, তবে এটি একই ডাটাফিলের আদর্শ আকারের সাথে সম্পর্কিত কোনও টেবিল ডেটাফাইলের প্রকৃত আকার (যেন সবেমাত্র ব্যাকআপ থেকে পুনরুদ্ধার করা হয়েছে)।

পারফরম্যান্স কারণে, MySQLসারিগুলি মুছে ফেলা বা আপডেট করার পরে ডেটাফাইলে কমপ্যাক্ট করে না।

এটি overheadটেবিল স্ক্যানের জন্য খারাপ, অর্থাত্ যখন আপনার ক্যোয়ারিতে সমস্ত টেবিলের মানগুলি চালিত হওয়ার দরকার হয়, তখন এটি আরও খালি জায়গার দিকে তাকাতে হবে।

আপনার টেবিল এবং সূচিগুলি সংহত করবে যা overheadচালিয়ে আপনি পরিত্রাণ পেতে পারেন OPTIMIZE TABLE


7
মাইএসকিএল ডকুমেন্টেশনের আকার বলছে "আপনি যদি কোনও টেবিলের একটি বৃহত অংশ মুছে ফেলে থাকেন বা যদি আপনি ভেরিয়েবল-দৈর্ঘ্যের সারিগুলির সাথে একটি টেবিলের অনেকগুলি পরিবর্তন করে থাকেন তবে" এটি আমার ক্ষেত্রে, ধন্যবাদ :)
বোকলোডো

8

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


1

অপ্টিমাইজ টেবিলটি খুব সমস্যাযুক্ত হতে পারে। উদাহরণস্বরূপ, যদি কোনও সাইটে টেবিলটি ভারীভাবে ব্যবহৃত হয়।

http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

কোনও মাইস্যাম বা আর্কাইভ টেবিলের একটি বৃহত অংশ মুছে ফেলার পরে, বা মাইআইএসএএম বা আর্কাইভ টেবিলটিতে ভেরিয়েবল-দৈর্ঘ্যের সারিগুলির সাথে অনেকগুলি পরিবর্তন করার পরে (টেবিলগুলিতে ভ্যাচারার, ভারবাইনারি, ব্লোব বা টেক্সট কলাম রয়েছে)। মুছে ফেলা সারিগুলি একটি লিঙ্কযুক্ত তালিকায় রক্ষা করা হয় এবং পরবর্তী INSERT ক্রিয়াকলাপগুলি পুরানো সারি অবস্থানগুলি পুনরায় ব্যবহার করে <

আমি বিশ্বাস করি আমি এই আচরণটি নিশ্চিত করেছি। এবং এটি অবশ্যই খুব দরকারী হবে।

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