যদি আপনার প্লাগইনটিতে প্রচুর ডেটা থাকে, তবে wp_postmeta
নীচে প্রদর্শিত হিসাবে এটি ব্যবহার করা ভাল ধারণা নয়:
উদাহরণস্বরূপ WooCommerce গ্রহণ করা, ~ 30,000 পণ্য সহ একটি দোকানে, বলতে হবে, গড়ে প্রতি পণ্য হিসাবে 40 ডলার পোস্ট মেটা (গুণাবলী এবং সমস্ত কিছু), প্রতি পণ্য প্রতি 5 টি চিত্র চিত্র, যার অর্থ ~ 4 ইমেজ মেটা থাকবে প্রতিটি চিত্রের জন্য:
30,000 পণ্য এক্স 40 মেটা প্রতি = 1,200,000 সারি wp_postmeta
+ +
30,000 পণ্য এক্স 5 চিত্র প্রতিটি x 4 চিত্র মেটা = 600,000 সারি এর জন্য wp_postmeta
সুতরাং কেবলমাত্র 30,000 পণ্য দিয়ে আপনি 1,800,000 সারি সন্ধানের দিকে তাকিয়ে আছেন wp_postmeta
।
আপনি যদি আপনার পণ্য বা আপনার পণ্য চিত্রগুলিতে আরও সম্পত্তি যুক্ত করেন তবে এই সংখ্যাটি বহুগুণ হবে।
সমস্যাটি দ্বিগুণ:
- মাইএসকিউএল-এর সাথে স্ব-যোগদানগুলি খুব ব্যয়বহুল
wp_postmeta
আপনি যদি পরে মাইএসকিএল সংস্করণগুলি ব্যবহার না করেন তবে সারণীটি সূচিবদ্ধ হয় না (অর্থাত্ কোনও ফুলটেক্স সূচী নেই meta_value
)
প্রকৃত কেস থেকে উদাহরণ দিতে:
SELECT meta_value FROM wp_postmeta WHERE meta_key LIKE '_shipping_city'
এই সমস্ত অর্ডার বিশদ থেকে শিপিং সিটি নির্বাচন করে একটি এন্ট্রি স্তর ডেডিকেটেড সার্ভারে 5-10 অর্ডার থাকা সত্ত্বেও পুরো a 3 সেকেন্ডে আসে । কারণ কোয়েরিটি কোনও wp_postmeta
টেবিলের মধ্যে থেকে চালিত হয় যার লাইভ ইনস্টলেশনতে million 3 মিলিয়ন সারি রয়েছে।
এমনকি হোম পৃষ্ঠাটি বেশ ধীরে ধীরে আসে কারণ থিমটি বিভিন্ন উপাদানগুলি থেকে wp_postmeta
স্লাইডার, কয়েকটি পর্যালোচনা সন্নিবেশ, কয়েকটি অন্যান্য মেটা থেকে টেনে তোলে। সাধারণ পণ্য তালিকা খুব ধীর, অনুসন্ধান তালিকা একইভাবে ধীর গতি যখন পণ্য তালিকা।
আপনি কোনও সাধারণ উপায়ের মাধ্যমে এটি ঠিক করতে পারবেন না। আপনি আপনার সার্ভারে ইলাস্টিক অনুসন্ধান রাখতে পারেন এবং ওয়ার্ডপ্রেসে একটি ইলাস্টিক অনুসন্ধান প্লাগইন ব্যবহার করতে পারেন, আপনি পুনরায় / মেমক্যাচ করতে পারেন, আপনি একটি ভাল পৃষ্ঠা ক্যাশে প্লাগইন ব্যবহার করতে পারেন, তবে শেষ পর্যন্ত মৌলিক সমস্যাটি থাকবে - একটি ফোলা থেকে কোনও পরিমাণের ডেটা আনা wp_postmeta
টেবিলটি ধীর হয়ে যাবে, যখনই এটি সম্পন্ন হয়। সার্ভারে যেখানে আমি নীচে প্রয়োগ করা সমাধানটি পরীক্ষা করেছিলাম, এগুলি সমস্ত ইনস্টল ও সঠিকভাবে কনফিগার করা হয়েছে এবং অনুকূলিত হয়েছে এবং প্লাগইনগুলি ক্যাচ করার পরে সাইট লগইন না থাকা ব্যবহারকারীদের জন্য বা সাধারণভাবে করা প্রশ্নের জন্য ঠিকমত কাজ করেছে।
কিন্তু একজন লগইন করা ব্যবহারকারীর এমন কিছু করার চেষ্টা করেছিল যা সাধারণত হয় নি বা ক্রোনস, ক্যাশে প্লাগিনগুলি বা অন্য কোনও ইউটিলিটি ডিবি থেকে এটি ক্যাশে বা অন্য কিছু করতে প্রকৃত ডেটা আনতে চেয়েছিল, জিনিসগুলি শূন্যে ধীরে ধীরে চলে গিয়েছিল।
সুতরাং আমি অন্য কিছু চেষ্টা করেছিলাম:
কোড দ্বারা উত্পন্ন কাস্টম টেবিলের সমস্ত পণ্য মেটা (পোস্ট টাইপের পণ্যের জন্য পোস্টমেটা ) নিতে আমি একটি ছোট প্লাগইন কোড করেছিলাম । এই প্লাগইনটি প্রতিটি পোস্টের জন্য সমস্ত মেটা নিয়েছিল এবং প্রতিটি মেটা কলাম হিসাবে যুক্ত করে এবং প্রতিটি সারিতে মান সন্নিবেশ করে একটি সারণী তৈরি করে। আমি EAV ফর্ম্যাটটিকে একটি অনুভূমিক, ফ্ল্যাট রিলেশনাল ফর্ম্যাটে পরিণত করেছি। আমার wp_postmeta
টেবিল থেকে সমস্ত সরানো পণ্য থেকে পোস্টমেটা মুছতে প্লাগইন ছিল ।
আমি যখন সেখানে এসেছি তখন আমি সংযুক্তি পোস্টমেটা এবং অন্যান্য সমস্ত পোস্ট টাইপের মেটা তাদের নিজস্ব টেবিলে সরিয়েছি।
তারপরে আমি get_(post_type)_meta
নতুন কাস্টম টেবিলগুলি থেকে সেগুলি পরিবেশন করতে মেটাডেটা পুনরুদ্ধারকে ওভাররাইড করতে ফিল্টারের দিকে ঝুঁকেছি।
এখন আগের থেকে একই ক্যোয়ারী, যা থেকে আনতে ~ 3 সেকেন্ড সময় নিয়েছিল wp_postmeta
00 0.006 সেকেন্ড। সাইটটি এখন এমন আচরণ করে যেন এটি কোনও তাজা WP ইনস্টলেশন।
....................
স্বাভাবিকভাবেই, ওয়ার্ডপ্রেস উপায়ে জিনিসগুলি করা ভাল। এটি আসলে আদর্শ।
তবে এটি স্পষ্ট জ্ঞান যে EAV টেবিল স্কেলিংয়ে খুব অদক্ষ। এটি অসীম নমনীয় এবং আপনাকে যে কোনও ডেটা সঞ্চয় করতে দেয় তবে আপনি যে মূল্যটি প্রদান করেন তা হ'ল পারফরম্যান্স। এটি একটি মৌলিক বাণিজ্য বন্ধ।
সেই প্রসঙ্গে, এমন কাউকে বলা মুশকিল, যিনি হ্যাপ টন ডেটা রাখার ইচ্ছা করছেন এবং - godশ্বর নিষেধ করুন - সেই ডেটাতে কোয়েরি / অনুসন্ধান wp_postmeta
নিশ্চিত করে টেবিলটি ব্যবহার করবেন। পারফরম্যান্স হিট দুর্দান্ত হবে।
আপনার কাস্টম সারণীগুলি ব্যবহার করা আপনার ডেটাটি পাইল করার অনুমতি দেয় এবং এখনও যথেষ্ট দ্রুত থেকে যায়।
ইজি ডিজিটাল ডাউনলোড প্লাগইনের স্রষ্টা পিপ্পিন উইলিয়ামস ঠিক কীভাবে উল্লেখ করেছিলেন যে তিনি যদি নিজের প্লাগইনকে কোডিং শুরু করে থাকেন তবে তিনি কাস্টম টেবিল ব্যবহার করবেন, যদি আপনি এমন কিছু তৈরি করতে যা যা দীর্ঘ সময়ের জন্য ব্যবহার করা হবে বা প্রচুর ডেটা গুছিয়ে রাখা হয়েছে, আপনি যদি নিজের কাস্টম টেবিলগুলি ভাল ডিজাইন করেন তবে এটি ব্যবহার করা আরও দক্ষ।
আপনাকে অবশ্যই নিশ্চিত করতে হবে যে কোনও অন্য প্লাগইন / অ্যাডন বিকাশকারী আপনার ডেটা পুনরুদ্ধারের আগে এবং পরে আপনার ডেটা ম্যানিপুলেট করার জন্য আপনার প্লাগইনটিতে ookোকাচ্ছে। আপনি যদি তা করেন তবে আপনি বেশ শক্ত are