মাইএসকিউএল ডিবি সার্ভারে অপ্টিমাইজ টেবিল অনুসন্ধান চালানোর সুবিধা


9

আমি জানতে চাই যে OPTIMIZE TABLE tbl_nameমাইএসকিউএল সার্ভারে কোয়েরি চালিয়ে কী কী উপকারিতা [সত্যিই ব্যবহারিক] তা কাটা যেতে পারে ।

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

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

উত্তর:


7

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

উদাহরণ: আপনি যদি অনুকূলিত হন তবে আপনি mydb.mytableএই আদেশটি প্রবেশ করুন:

OPTIMIZE TABLE mydb.mytable;

নোট করুন যে মাইএসকিএল হুডের নীচে নিম্নলিখিত কিছু সম্পাদন করে:

CREATE TABLE mydb.mytable2 LIKE mydb.mytable;
ALTER TABLE mydb.mytable2 DISABLE KEYS;
INSERT INTO mydb.mytable2 SELECT * FROM mydb.mytable;
ALTER TABLE mydb.mytable2 ENABLE KEYS;
DROP TABLE mydb.mytable;
ALTER TABLE mydb.mytable2 RENAME mydb.mytable;
ANALYZE TABLE mydb.mytable;

এটি এমন টেবিলগুলির জন্য বেশ কার্যকর যেগুলি আপডেট এবং ডিলিটগুলির একটি উচ্চ ভলিউম অনুভব করে

এটি সম্পাদন করা দুটি জিনিস অর্জন করতে পারে

  1. ডান মাপের টুকরো টুকরোতে ডেটা লোড করার প্রয়াসে কোনও টেবিলের টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টেকার থেকে বাঁচান এই টুকরোগুলি বাদ দিয়ে এই ক্রিয়াকলাপ হ্রাস পাবে।

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

বিচারকার্য স্থগিত রাখার আদেশ

ক্যাচিং সম্পর্কিত, একটি পূর্ণ টেবিল স্ক্যান করার কারণে ক্যাচিং দ্রুত ডুব দেয়। মাইআইএসএএম সূচক পৃষ্ঠাগুলির জন্য মায়িস্যাম কী ক্যাশে এবং এর বাইরে প্রবাহিত হয়। InnoDB- এর জন্য ডেটা এবং সূচী পৃষ্ঠাগুলি InnoDB বাফার পুলের বাইরে এবং বাইরে প্রবাহিত হয়।


আপনার উত্তর দেওয়ার জন্য ধন্যবাদ. আপনার দৃষ্টিকোণ থেকে, আমি বুঝতে পারি যে আমি আমার ঘন ঘন আপডেট হওয়া টেবিলের জন্য টেবিলের অনুকূলকরণের জন্য ক্রোন কাজের মতো কিছু পরিষেবা আরও ভালভাবে ব্যবহার করি যাতে আমি আরও ভাল পারফরম্যান্স অর্জন করতে পারি। এর বাইরেও আমি এই টেবিলের জন্য InnoDB ব্যবহার করছি। এটি কি আরও ভাল পছন্দ? এছাড়াও, আমি এসকিউএল সার্ভারে হ্যাশ যোগ দেয় যা কোয়েরি পারফরম্যান্সকে উন্নত করার পরামর্শ দেওয়া হয়েছিল, আপনি কি দয়া করে আমার জন্য এটি ব্যাখ্যা করতে পারেন এবং মাইএসকিউএলে এর সাথে কীভাবে এইরকম একটি পেতে পারেন। এছাড়াও দয়া করে আমাকে মাইএসকিউএল [উইন্ডোজ 7 সংস্করণ] এর জন্য একটি এসকিউএল ক্যোয়ারী অপ্টিমাইজার দিন।
সারায়ানান

@ সাভরণান: যে মাইএসকিউএল ক্যোরি অপটিমাইজারটি আমি উল্লেখ করছিলাম সেটি হ'ল মাইএসকিউএল অন্তর্নিহিত one বিটিডাব্লু যেহেতু আপনি যে টেবিলটি অপ্টিমাইজ করতে চান তা ইনোডিবি, তাই আপনি অক্ষম কীগুলি এবং সক্ষম কীগুলি পদক্ষেপগুলি এড়িয়ে যেতে পারেন। এছাড়াও, আনালাইজ টেবিলটি এড়ানো যায় কারণ এটি ইনোডিবি টেবিলগুলিতে একেবারেই অকেজো, যেহেতু ইনোডিবি বিটিআরই সূচকগুলির পৃষ্ঠাগুলি ব্যবহার করে সূচক ডাইভ হিসাবে পরিচিত হিসাবে ঘনিষ্ঠভাবে তার টেবিলের কার্ডিনালিটিগুলি পুনরায় সাজিয়ে তোলে।
RolandoMySQLDBA

@ সাভরণান: যতটা HASH সূচী যায়, InnoDB এর সাথে অ্যাডাপিটিভ হ্যাশ সূচক রয়েছে ( dev.mysql.com/doc/refman/5.5/en/innodb-adaptive-hash.html )। "হাই পারফরম্যান্স মাইএসকিউএল" ( amazon.com/dp/0596101716 ) এর 103-106 পৃষ্ঠাগুলির উপর ভিত্তি করে আপনার নিজের হ্যাশ সূচকগুলি অনুকরণ এবং সংঘর্ষগুলি হ্যান্ডল করার বিষয়েও চমৎকার পরামর্শ রয়েছে
RolandoMySQLDBA
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.