কোন টেবিলগুলি ইনোডিবিতে স্থানান্তরিত হওয়া বা হওয়া উচিত এবং কোনটি মাইআইএসএএম থাকা উচিত?


10

শিরোনাম অনুসারে: টেবিলগুলির জন্য InnoDB এ স্থানান্তরিত করার জন্য কি প্রার্থীদের দ্রুত তালিকা আছে? এবং মাইআইএসএএম থাকা উচিত।

কিছু অতিরিক্ত তথ্য

  • সাইটে মোটামুটি ভারী পঠন-ভার রয়েছে, তবে ট্যাগ এবং এগুলি সহ প্রতি ঘন্টা প্রায় 10 টি নোড .োকানো হয়।
  • আমরা সিসিকে (আকারে সাধারণ আকারের টেবিলগুলির একটি বিশাল পরিমাণ) এর ভারী ব্যবহার করি content_field%
  • আমরা আমাদের প্রায় সমস্ত ব্লক এবং পৃষ্ঠাগুলির জন্য ভিউও ব্যবহার করি ; তবে তাদের মধ্যে অনেকগুলি কাস্টম মডিউলগুলির সাথে প্রতিস্থাপনের প্রার্থী (যেমন ডাটাবেস-কোয়েরিগুলি এবং সেই প্রশ্নের তীব্রতা হ্রাস করতে পারে)।
  • ব্যবহারকারীরা সব বেনামে; কয়েকজন লগ ইন করা সম্পাদক এবং ওয়েবমাস্টার ব্যতীত।

এটি হাসিখুশি পুরো ইন্টারনেটের আসলে এই প্রশ্নের উত্তর কীভাবে দেওয়া যায় তার কোনও ধারণা নেই। কোন ড্রুপাল সারণী সর্বাধিক লেখায় নেয় এবং লক হয়ে যায় .... কে জানে।
জেএম বেকার

উত্তর:


8

টেবিল লক করার সমস্যাগুলি রোধ করতে আপনার সমস্ত ডেটা InnoDB এ রূপান্তর করা উচিত। যাইহোক, এখানে কিছু ভাবনা আছে:

ফুলটেক্স ইনডেক্সিং

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

ফুলটেক্স ইনডেক্সিংয়ে আপডেট

মাইএসকিউএল 5.6 এখন জিএ (উত্পাদন ব্যবহারের বাইরে)। দয়া করে InnoDB এ ফুলটেক্সট ইনডেক্সিং চেষ্টা করে দেখুন।

যে সূচীগুলি রয়েছে সেগুলি সন্ধান করতে FULLTEXT, এই কোয়েরিটি চালান:

SELECT table_schema,table_name
FROM information_schema.statistics
WHERE index_type='FULLTEXT';

যদি কোনও সারি ফিরে না আসে তবে সমস্ত InnoDB টেবিলকে আপনার হৃদয়ের সামগ্রীতে রূপান্তর করুন। আমি কীভাবে সমস্ত মাইআইএসএএম টেবিলগুলিকে কেবল মাইএসকিএল ব্যবহার করে ইনোডিবিতে রূপান্তর করতে পারি তার একটি পূর্ববর্তী পোস্ট লিখেছিলাম

মাইএসকিউএল প্রতিলিপি

আপনার যদি পঠন-ভারী পরিবেশ থাকে তবে মাইআইএসএএম-তে দ্রুত নিম্নলিখিতগুলি পড়তে পারে যদি আপনি নিম্নলিখিতটি করেন:

  • সেটআপ মাস্টার / স্লেভ প্রতিলিপি
  • মাস্টার এর অধীনে এক বা একাধিক পড়ুন স্লেভ তৈরি করুন
  • যোগ --skip-innodbসব ক্রীতদাসদের উপর /etc/my.cnf মধ্যে (MyISAM পরিবর্তিত টেবিল 'বান্দা যখন মধ্যে লোড ডেটা)
  • প্রতিটি স্ল্যাভের সমস্ত মাইআইএসএএম টেবিলের সারি বিন্যাসটি এই আদেশ দ্বারা স্থির করে পরিবর্তন করুন: ALTER TABLE tblname ROW_FORMAT=FIXED;
  • আমি ডিবিএ স্ট্যাকএক্সচেঞ্জ এ বিষয়ে কিছু পোস্ট করেছি
  • মাইএসকিউএল ডাটাবেস ডিজাইন এবং টিউনিং বইটি ROW_FORMAT=FIXED72,73 পৃষ্ঠাগুলিতে ব্যবহারের পরামর্শ দেয়। এটি অভ্যন্তরীণভাবে সমস্ত ভ্রচার ক্ষেত্রকে CHAR এ রূপান্তর করবে। এটি মাইআইএসএএম টেবিলটিকে আরও বড় করে তুলবে, তবে এর বিপরীতে চালিত SELECT গুলি আরও দ্রুত হবে। আমি ব্যক্তিগতভাবে এটি প্রমাণ করতে পারি। আমার একবার টেবিল ছিল যা ছিল 1.9 জিবি। আমি এর সাথে ফর্ম্যাটটি পরিবর্তন করেছি ALTER TABLE tblname ROW_FORMAT=FIXED। টেবিলটি শেষ হয়েছে 3.7 গিগাবাইট। এর বিপরীতে SELECT গুলির গতি 20-25% বেশি ছিল অন্য কিছু উন্নতি বা পরিবর্তন না করেই।

এটির সাথে একমাত্র মাথা ব্যথা হ'ল আপনার অ্যাপ্লিকেশনটিকে পৃথক পঠিত দাস সম্পর্কে সচেতন করা।

উপসংহার

আপনি যদি প্রতিটি স্টোরেজ ইঞ্জিনের অন্যান্য সুবিধাগুলি খোঁজেন, তবে ডিবিএ স্ট্যাকএক্সচেঞ্জটি দেখুন:


4

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

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