ওয়ার্ডপ্রেস ডাটাবেস ধীর - আমি InnoDB এ স্যুইচ করা উচিত?


12

আমার 10k এরও বেশি পোস্ট সহ একটি ওয়ার্ডপ্রেস সাইট রয়েছে এবং যখনই আমি পোস্টগুলি যুক্ত এবং সম্পাদনা করি তখন জিনিসগুলি খুব ধীরে ধীরে শুরু হয়। পৃষ্ঠাগুলি প্রশাসকদের পোস্টগুলির তালিকার পাশাপাশি ব্যবহারকারীদের জন্য সুন্দর এবং দ্রুত লোড করে, তবে যখন লেখাগুলি বা আপডেটগুলি ঘটে সার্ভারটি 100% সিপিইউতে চলে যায় এবং দীর্ঘ সময় লাগে (কখনও কখনও পিএইচপি-র 60 এর সময়সীমা চেয়ে দীর্ঘতর হয়)।

আমি ভাবছি যে এটি মাইআইএসএএমের টেবিল স্তরটি লকিংয়ের সাথে করতে পারে এবং এটি ইনোডিবিতে স্যুইচ করার কথা ভাবছি। এটি করার প্রভাবগুলি কী কী?

কিছু পরিসংখ্যান:

select  - per hour ~22k
update  - per hour ~7.6k
set option  - per hour ~7k

আমি জানি যে আমি করতে পারি আরও প্রচুর অপ্টিমাইজেশন রয়েছে তবে আমার অনুভূতিগুলি সম্ভবত এটির সবচেয়ে বেশি প্রভাব ফেলতে পারে।

ধন্যবাদ

সম্পাদনা করুন : আমি আস্তে আস্থার কারণ হয়ে উঠার একটি বড় সমস্যা পেয়েছি, এটি ইয়ারপাপি (তবুও অন্য সম্পর্কিত পোস্ট প্লাগইন) যা প্রতিবার "সম্পর্কিততা" পুনরুত্পাদন করছিল এবং এটি আমাদের 2k + ট্যাগগুলির কারণে বলে মনে হচ্ছে। আমি "বিবেচনা ট্যাগগুলি" বিকল্পটি বন্ধ করে দিয়েছি এবং এটি যথেষ্ট গতিতে চলেছে।

এছাড়াও, অন্যান্য প্লাগইনগুলি যা জিনিসগুলি পুনরায় জেনারেট করে তাদের জন্য এই জাতীয় সমস্যা যেমন কিছু এক্সএমএল সাইটম্যাপ প্লাগইন হতে পারে।

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

উত্তর:


11

আমি প্রকৃতপক্ষে InnoDB এ স্যুইচ করব। টেবিল লকিং / সারি লকিং দীর্ঘকাল ধরেই অনেকে আলোচনা করেছেন। আমি সর্বদা InnoDB হাত নীচে চয়ন করব। তবে ইনোডিবি ... ক্যাচিং চয়ন করার আরও একটি গভীর কারণ রয়েছে

যদিও বেশিরভাগ লোক গর্ব করে যে মাইআইএসএএম পড়ার পক্ষে দ্রুত, তবে বেশিরভাগ লোক ভুলে যায় যে মাইআইএসএএম-র অনেকগুলি ক্যাশে, যাকে কী ক্যাশে বলা হয় (কী_বফার_সাইজ দ্বারা সেট করা হয়), কেবলমাত্র .MYI ফাইল থেকে সূচী পৃষ্ঠাগুলি ক্যাশে করে। এটি ডেটা পৃষ্ঠাগুলি কখনই ক্যাশে করে না। 32-বিট সিস্টেমে এটির অফিশিয়াল সর্বাধিক 4 জিবি রয়েছে। 8 গিগাবাইট 64-বিটের জন্য সেরা সর্বাধিক।

InnoDB বাফার পুল ডেটা এবং সূচী পৃষ্ঠাগুলি ক্যাশে করে। আপনার যে সার্ভারটি রয়েছে তার উপর নির্ভর করে আপনি র‌্যামে পুরো ডেটাসেট পর্যন্ত ক্যাশে রাখতে পারেন। আপনি 80% র‌্যাম এবং 10% ডিবি কনেনিজিশনের জন্য ইনোডিবি টিউন করতে পারেন এবং ওএসের জন্য 10% রেখে যেতে পারেন। এটি বিভিন্ন অপারেটিং সিস্টেমের ক্ষেত্রেও সত্য

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

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


6

InnoDB সম্ভবত আপনাকে সাহায্য করবে না - পৃষ্ঠা / সারির স্তর লক করা বিতর্ককে প্রশমিত করতে সহায়তা করে, তবে এটি আপনার সমস্যা বলে মনে হয় না।

সেখানে প্রচুর স্টাফ রয়েছে যা পরামর্শ দেয় যে মাইআইএসএএম গড় ব্লগের দৃশ্যে ইনোডিবি-র চেয়ে ধীরে ধীরে (লেখার চেয়ে অনেক বেশি পড়া)।

একটি স্যুইচ করার আগে, আপনার কমপক্ষে নিম্নলিখিতটি করা উচিত

  • মাইসকিউলটিউন চালান যা আপনাকে কিছু কনফিগারেশন পরামর্শ দেবে (এটি ত্রুটিযুক্ত নয় বা সমস্ত কিছু জানা থাকলেও)
  • স্লো ক্যোয়ারী লগিং চালু করুন, এটি এক বা এক দিন রেখে দিন এবং তারপরে লগটি চালিয়ে যাওয়া শুরু করুন এবং কী চলছে তা দেখার জন্য অনুসন্ধানগুলি ব্যাখ্যা করুন

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

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