Wp_options টেবিলের জন্য ধীরে প্রশ্ন Qu


16

আমি ডাব্লুপি ভিত্তিক সাইটের ধীর প্রশ্নগুলি লগটি ট্র্যাক করে যাচ্ছি ( লম্বা_কোয়রি_টাইম 10 এর নির্ধারিত মান সহ ) এবং আমি লক্ষ্য করেছি যে নিম্নলিখিত কোয়েরিটি প্রায়শই লগইন হয় -

# User@Host: root[root] @ localhost []
# Query_time: 0  Lock_time: 0  Rows_sent: 394  Rows_examined: 458
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';

আমি বুঝতে পারি না যে এত ছোট একটি টেবিল কার্যকর করতে এত সময় কীভাবে নিতে পারে। এটি কি অন্য কোনও সমস্যার লক্ষণ মাত্র? (বর্তমানে ডেডিকেটেড ভিএম-তে মুডল, পিএইচপিবিবি এবং ডব্লিউপি চলছে)।

উত্তর:


16

আপডেট : ক্যোয়ারী লগ হওয়ার কারণ এটি কোনও সূচক ব্যবহার করে না । ক্যোয়ারির সময় 0, অর্থাৎ এটি আসলে দ্রুত কার্যকর হয়। আপনি যদি লগ হওয়া না চান তবে আপনি "লগ-কোয়েরি-না-ব্যবহার-সূচী" বিকল্পটি আনসেট করতে পারেন।

Wp_options টেবিলটির অটোলোডে কোনও সূচক নেই, সুতরাং কোয়েরিটি একটি সম্পূর্ণ টেবিল স্ক্যান করে শেষ হয়। সাধারণভাবে সেই টেবিলটি খুব বেশি বড় হওয়া উচিত নয়, সুতরাং এটি কোনও সমস্যা নয় তবে আমি অনুমান করছি যে এটি আপনার ক্ষেত্রে ঘটেছিল happened

একটি সূচি যোগ করা সমস্যার সমাধান করতে পারে তবে থিডডেডিক মন্তব্যগুলিতে যেমন উল্লেখ করেছেন, অটোলোডের মানগুলি যদি হয় সংখ্যাগরিষ্ঠ হ্যাঁ হয়, বা হ্যাঁ এবং না-এর মধ্যে সমানভাবে বিতরণ করা যায় না:

প্রথমে বিতরণটি দেখতে কেমন তা দেখতে এই ক্যোয়ারীটি করুন:

SELECT COUNT(*), autoload FROM wp_options GROUP BY autoload;

যদি তাদের বেশিরভাগ অংশ 'না' তে সেট করা থাকে তবে আপনি অটোল্যাডে একটি সূচক যুক্ত করে আপাতত সমস্যাটি সমাধান করতে পারেন।

ALTER TABLE wp_options ADD INDEX (`autoload`);

তবে, আপনি কেন টেবিলটি এত বড় হয়ে গেছেন তার নীচে যেতে চাইতে পারেন। সম্ভবত কিছু খারাপভাবে লিখিত প্লাগইন মজার কিছু করছে।


2
আমি সন্দেহ করি যে এই ক্ষেত্রে একটি সূচক কোনও লাভের প্রস্তাব দিতে পারে - মূল নিবন্ধটি এই নিবন্ধটি দেখুন
TheDeadMedic

সর্বাধিক বিকল্পগুলি অটোল্যাডে সেট করা আছে কি না তার উপর নির্ভর করে। আমি ভাবব না, তবে টেবিলে কোনওভাবেই এত বড় হওয়া উচিত নয়, তাই মজার কিছু চলছে।
বিনয় পাই

1
মানগুলির বন্টন পরীক্ষা করার বিষয়ে কিছু যোগ করতে আমি উত্তর দিয়ে আপডেট করেছি।
বিনয় পাই

1
আমি কেবল মন্তব্যটি লক্ষ্য করেছি এবং বুঝতে পেরেছি আমার উত্তর সম্পূর্ণ ভুল। ক্যোয়ারীটি আসলে ধীর নয় ... এটি স্লো ক্যোয়ারী লগে লগইন করা হচ্ছে কারণ এটি কোনও সূচক ব্যবহার করে না।
বিনয় পাই

1
এই প্রশ্ন এবং উত্তরের জন্য ধন্যবাদ আমি আবিষ্কার করেছি আমার আমার wp_options টেবিলটিতে 90k এন্ট্রি রয়েছে, যার মধ্যে 88.5k মিথ্যা অটোলোড সেট করা হয়েছিল। বাকী সমস্ত প্লাগইন দ্বারা যুক্ত "ক্ষণস্থায়ী" এন্ট্রি ছিল (সম্ভবত ক্যাশে দেওয়ার জন্য?) অটোলোড কলামে একটি সূচক যুক্ত করা সঙ্গে সঙ্গে আমার মাইএসকিএল লোড তাত্ক্ষণিকভাবে গড়ে 89% থেকে 2.5% এ নেমে যায়। মনিটরিং এজেন্টরা দেখায় যে আমার সাইটের প্রতিক্রিয়া সময় 1900 মিমি থেকে 500 মিলিয়ন হয়ে গেছে। এটি আমার জন্য গেম চেঞ্জার ছিল।
মার্ডেড

5

কিছু দিন আগে আমার সার্ভারে চলমান মাইটোপটিতে উল্লিখিত ক্যোয়ারিতে আমি হোঁচট খেয়েছি - এবং প্রতিটি প্রশ্নের জন্য এটি বেশ কিছুটা সময় (প্রায় 10 সেকেন্ড) সময় নিয়েছিল! সুতরাং বাস্তব-বিশ্ব পরিস্থিতি রয়েছে যেখানে wp_options সমস্যা আকারে বাড়তে পারে। আমার ক্ষেত্রে আমি সন্দেহ করি যে ক্যাচিং প্লাগইন কচিফাই wp_options ফোটানোর জন্য দায়ী বলে মনে করি।

এই নির্দিষ্ট wp_options এর ডেটা:

5,309 rows
130MB of data

সমাধান হিসাবে, আমি বিনয় পাই পোস্ট করা সমাধানের অনুরূপ সূচকটি যুক্ত করেছি, যা সমস্যাটি নির্দোষভাবে সমাধান করে।


1

আমার wp_options টেবিলটিতে প্রায় 235 সারি ডেটা ছিল। আমি টেবিলটি সূচকের চেষ্টা করেছি, তবে এটি কোনও লাভ হয়নি।

দেখা যাচ্ছে যে প্রায় 150 টি ক্ষণস্থায়ী বিকল্পগুলি টেবিলের মধ্যে beenোকানো হয়েছিল, তবে স্বয়ংক্রিয়ভাবে মোছা হয়নি।

এটি সম্পর্কিত কিনা তা আমি জানি না, তবে আমি আমার /var/log/apache2/access.log ফাইলগুলি সন্ধান করছি এবং লক্ষ্য করেছি যে একাধিক (সম্ভবত আপোস করা হয়েছে) আমাজন ওয়েব সার্ভিস সার্ভারগুলি (আইপি অ্যাড্রেসগুলি 54 দিয়ে শুরু হবে)। XXX এবং 32.XXX) /~web-root-dir/xMLrpc.php ব্যবহার করার চেষ্টা করছিল।

কিছু সমস্যা সমাধানের পরে, আমি wp_options টেবিলটি বিকল্প নামগুলির জন্য জিজ্ঞাসা করেছি যাতে "ক্ষণস্থায়ী" থাকে

wp_options থেকে * নির্বাচন করুন যেখানে বিকল্প নামটি '% ক্ষণস্থায়ী %' এর মতো;

এই ক্যোয়ারী থেকে ফিরে আসা ক্ষেত্রগুলির মধ্যে একটি হ'ল 'অপশন_ভ্যালু' যার লংটেক্সট এর ডেটাটাইপ রয়েছে। মাইএসকিউএল ডক্স অনুসারে, একটি লং টেক্সট ক্ষেত্র (প্রতিটি সারির জন্য) 4-গিগাবাইট ডেটা ধরে রাখতে পারে।

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

আমার সমাধানটি হ'ল সমস্ত "ক্ষণস্থায়ী" সারি মুছে ফেলা। এটি "অস্থায়ী" সারিগুলি স্বয়ংক্রিয়ভাবে পুনরায় তৈরি হবে (যেহেতু যদি তারা সেখানে থাকার কথা বলে মনে হয়) তবে এটি সার্ভারের ক্ষতি করবে না।

এটি করার পরে, সার্ভারটি আবার প্রতিক্রিয়াশীল ছিল।

এই সারিগুলি মোছার জন্য প্রশ্ন:

Wp_options থেকে অপসারণ যেখানে বিকল্প_নাম যেমন '% ক্ষণস্থায়ী %';

আমি আমার ফায়ারওয়ালে এডাব্লুএস আইপি ঠিকানা / 8 সুপারব্লকগুলিও যুক্ত করেছি (-:


হাঁ। আমি "40 সেকেন্ডের লোড টাইম" থেকেও ভুগছিলাম যতক্ষণ না আমি আবিষ্কার করেছি যে আমার কাছে 20,000 ডাব্লুপি_প্লেশন রেকর্ড রয়েছে যার মধ্যে প্রতিটি পৃষ্ঠার সাথে প্রচুর ডেটা লোড হচ্ছে। এগুলি অপসারণ করা সাইটটিকে যথেষ্ট গতিময় করেছে।
জেসনজেনএক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.