কীভাবে `wp_options` টেবিলের` অটোল্যাডে সূচি থাকবে না?


15

ওয়ার্ডপ্রেস দ্বারা পরিবেশন করা প্রতিটি পৃষ্ঠার শুরুতে, বিকল্পগুলি আনার জন্য একটি মাইএসকিউএল কল রয়েছে:

SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';

autoloadকলামে কোনও সূচি নেই বলে , মাইএসকিউএলকে সমস্ত সারি সন্ধান করতে হবে।

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

আমার অ্যাপ্লিকেশনটিতে, আমি একটি অধিবেশন প্রতিস্থাপন হিসাবে পরিবেশন করতে প্রচুর ক্ষণস্থায়ী মান ব্যবহার করেছি। তারা দুর্দান্ত কাজ করেছে এবং আমার নিজস্ব জঞ্জাল সংগ্রহের রুটিন রয়েছে। আমি লক্ষ্য করেছি যে wp_optionsটেবিলটিতে আমার ক্ষণস্থায়ী মানগুলি (যা দিয়ে শুরু হয় _transient_) সমস্ত রয়েছে autoload=no। আমি আশা করি আমার wp_optionsটেবিলের সারিগুলির সংখ্যা ক্রমবর্ধমান ব্যবহারকারীর সংখ্যা বাড়ার সাথে সাথে বৃদ্ধি পাবে।

আমি জানতে চাই কেন টেবিলটি এভাবে ডিজাইন করা হয়েছে। এবং আমি কি আমার বিশেষ ক্ষেত্রে একটি সূচক তৈরি করব?

উত্তর:


11

কোনও সূচক নেই কারণ এর প্রয়োজনটি কখনই পর্যাপ্ত ছিল না।

ইন টিকেট # 14258 সুপারিশ করা হয়, কিন্তু যেহেতু সবচেয়ে বিকল্প ব্যবহার autoload=yesডিফল্টরূপে, সূচক যাহাই হউক না কেন উপেক্ষা করা হবে।

এছাড়া এখনও খোলা টিকেট # 24044 _Add এইড wp_options সূচক / performance_ উন্নত

আমি মনে করি আপনার একটি সূচি তৈরি করা উচিত। এটি আপগ্রেড বেঁচে থাকবে। এটি আপনার পারফরম্যান্সে সহায়তা নাও করতে পারে তবে আপনি সেই টিকিটে প্রকৃত পরিসংখ্যানের ডেটা যুক্ত করতে পারেন।


নভেম্বর 2019 আপডেট করুন

সূচকটি ওয়ার্ডপ্রেস 5.3 এ যুক্ত করা হয়েছে। অবশেষে। উপরে উল্লিখিত টিকিট # 24044 এবং মুক্তির জন্য বিকাশকারী নোট দেখুন

মনে রাখবেন যে একই নামের সাথে যদি আপনার বিদ্যমান সূচক থাকে তবে আপগ্রেড করার সময় আপনি একটি সতর্কতা পাবেন।

থেকে changeset :

বেশিরভাগ সাইটগুলি এই পরিবর্তন দ্বারা প্রভাবিত হবে না, তবে বিপুল সংখ্যক সারি রয়েছে এমন wp_options, যারা কেবলমাত্র একটি সংখ্যক autoloadসেট করেছেন তারা একটি উল্লেখযোগ্য পারফরম্যান্স উন্নতি দেখতে পাবেন।
বিপুল সংখ্যক সারি থাকা সাইটগুলিতে wp_options, তাদের মধ্যে অনেকগুলি autoloadসেট করা থাকলে দুর্ভাগ্যক্রমে তারা ইতিমধ্যে খুব ধীর অনুসন্ধানগুলির শীর্ষে পারফরম্যান্স পেনাল্টি দেখতে পাবে, তবে এটি ক্ষেত্রে সংখ্যালঘু হওয়া উচিত।


1
যতদূর আমি # 24044 এর মাধ্যমে পড়া থেকে বলতে পারি, পুরানো মাইআইএসএএম টেবিলগুলি পারফরম্যান্স রিগ্রেশন পাবে, নতুন ইনোডিবি টেবিলগুলি বেশিরভাগ ক্ষেত্রে উপকৃত হবে। আমি আমার সমস্ত উত্তরাধিকার সারণী InnoDB এ রূপান্তর করছি এবং autoloadকলামে একটি সূচি সেট করছি ।
lkraav

এত বছর পরে, শেষ পর্যন্ত এটি ওয়ার্ডপ্রেস দল সম্বোধন করেছে। একটি সূচক যুক্ত করা হয়েছেwp_options.autoload । সূত্র: make.wordpress.org/core/2019/10/15/… ... এবং ... core.trac.wordpress.org/ticket/24044#comment:87 ... @DanBUK- কে এই বৈশিষ্ট্যটি প্রস্তাব করেছেন? 2013.
জি

ধন্যবাদ, জি জি, আমি উত্তরটি আপডেট করেছি।
ফুসিয়া

5

আমি একটি ডেবিয়ান স্কুইজ বড় উদাহরণে 3 টি ডব্লিউপি ব্লগ চালাচ্ছি এবং তদন্ত করছি যে কেন মাইএসকিএল 3% থেকে 6% এর মধ্যে 200% সিপিইউ ব্যবহার এবং সিস্টেমের লোডে এই হোস্টের উপর আটকেছিল, মাইএসকিএল-এর ভিতরে একটি 'শো প্রসেসের তালিকা' দেখে আমরা বুঝতে পেরেছিলাম wp_option টেবিল এই ইস্যুতে জড়িত তাই আমরা কার্যকর করেছিলাম:

alter table wp_options add index autoload_idx(`autoload`);

এই অপারেশনের পরে শীর্ষে প্রদর্শিত মাইএসকিএল লোডটি হ্রাস করে 1% এ নেমেছে এবং উদাহরণস্বরূপ লোডের গড় এখন 0.10 is

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

আমাদের wp_options টেবিলটিতে 347 টি সারি রয়েছে।


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

0

যদিও @fuxia গৃহীত উত্তর কিছু "দাবি" কারণের উপর ছোঁয়া (যার বেশিরভাগ বিভিন্ন ট্র্যাক টিকেট, প্রভৃতি Automattic কর্মচারীদের দাবিকৃত হয়), অন্তর্নিহিত কারণ মধ্যে autoload বিকল্পের জন্য একটি সূচক সহ না ওয়ার্ডপ্রেস কোর জন্য wp_optionsটেবিল যে অটোমেটিক চিন্তিত এটি মাইএসকিউএল ডাটাবেসগুলির কার্যকারিতাটিকে নেতিবাচকভাবে প্রভাবিত করবে যা এখনও মাইআইএসএএম ইঞ্জিন ব্যবহার করে।

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

প্রায় সকল অতীত 9 বছর জন্য সূচক যোগ না করার জন্য অন্য কারণে (ট্র্যাক টিকেট ক্ষেত্রে হ্যাঁ, 2010 থেকে # 14258 এবং 2013 এর ট্র্যাক টিকেট ক্ষেত্রে যেহেতু # 24044 ) বারবার ভুল সদস্যদের কয়েক ডজন দ্বারা প্রমাণিত হয়েছে ওয়ার্ডপ্রেস সম্প্রদায়, তবুও জড়িত অটোমেটিক কর্মীরা বারবার কয়েকটি স্বতন্ত্র বেঞ্চমার্ক পরীক্ষাকে উপেক্ষা করেছে এবং মাইআইএসএএম উদ্বেগের কথা উল্লেখ করে ফিরে গেছে।

ধন্যবাদ, 2019 এর শেষদিকে পিএইচপি 7.2 এর সাথে এখন ওয়ার্ডপ্রেস কোর দ্বারা প্রস্তাবিত "ডিফল্ট" সংস্করণ, এবং ইনোডিবি ইঞ্জিনের সাথে এখন 5.5 এর পরে মাইএসকিউএল সংস্করণগুলিতে ডিফল্ট হয়েছে এবং @ ড্যানবুক সহ বিভিন্ন বিকাশকারীদের ক্রমাগত চাপের সাথে যারা বছরের পর বছর ধরে ইস্যুতে রয়েছেন , অটোমেটিক অবশেষে দিয়েছে এবং নভেম্বর 2019 সালে ওয়ার্ডপ্রেস 5.3+ হিসাবে অটোলোড সূচক যুক্ত করার সিদ্ধান্ত নিয়েছে।

লিটলবিজে আমরা প্রথম পরিচিত প্লাগইন চালু করেছিলাম যা সূচকটি উপস্থিত না থাকলে স্বয়ংক্রিয়ভাবে যোগ করে, যা এখনও গিটহাবে উপলব্ধ এবং নিয়মিত ডাউনলোড করা হচ্ছে। দয়া করে মনে রাখবেন যে আপনি ডাব্লুপি কোর 5.3 + চালাচ্ছেন তবে আপনার ওয়ার্ডপ্রেস স্ট্যাকটিতে এই ধরণের প্লাগইন ইনস্টল করার দরকার নেই L

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