হাজার হাজার ব্যবহারকারীর জন্য ওয়ার্ডপ্রেস ব্যবহারকারীর স্কেলিং


11

আমি ওয়ার্ডপ্রেস ব্যবহারকারী ব্যবস্থাপনার সাথে সংহত ক্লায়েন্টের জন্য একটি সিআরএম প্লাগইন তৈরি করেছি এবং আমি প্রতিটি ব্যবহারকারীর জন্য wp_usermetaটেবিলের নীচে অতিরিক্ত তথ্য সঞ্চয় করেছি ।

যাইহোক, ক্লায়েন্টের গ্রাহক ডাটাবেস দ্রুত বৃদ্ধি পাচ্ছে, এবং আমরা এখন হাজারে রয়েছি , যা আমাদের কয়েক সহস্র সারি দেয় wp_usermeta: এই মুহুর্তে আমি এই স্থাপত্যের আকার পরিবর্তনযোগ্যতা সম্পর্কে উদ্বিগ্ন হতে শুরু করি ।

ওয়ার্ডপ্রেস উপায়ে এত পরিমাণ ব্যবহারকারীর পরিচালনা করার কি কারও অভিজ্ঞতা আছে? আমি কলাম যোগ করা উচিত wp_usersএর উপর নির্ভর করার পরিবর্তে টেবিল wp_usermetaএক? এই পর্যায়ে আমি কীভাবে / প্রোফাইল ওয়ার্ডপ্রেস এবং নিজের কোড সম্পাদন সনাক্ত করতে পারি?

আমি এত পরিমাণে ডেটা এবং এই বর্ধমান হারে কখনও কাজ করি নি, এবং কোনও পয়েন্টার মূল্যবান হবে।

উত্তর:


16

টেবিলের আকারটি আসলে সমস্যা নয়, আপনি সেই টেবিলে যে প্রশ্নগুলি চালাচ্ছেন সেগুলি হতে পারে।

উদাহরণস্বরূপ, আপনি যদি ব্যবহারকারী-মেটা সারণীতে সঞ্চিত ডেটার ভিত্তিতে ব্যবহারকারী নির্বাচন করছেন, তবে সেই ক্যোয়ারীটি অত্যন্ত আপত্তিহীন হবে, কারণ মেটা_ভ্যালু কোনও সূচকযুক্ত ক্ষেত্র নয়। এক্ষেত্রে আপনার অতিরিক্ত সূচিপত্র যুক্ত করতে বা কোনও নির্দিষ্ট পদ্ধতিতে যেমন কোনও কাস্টম ট্যাক্সনোমির সাথে স্টোর করে বিবেচনা করতে হবে।

সাধারণভাবে বলতে গেলে, আপনি মেটা হিসাবে যে জিনিসগুলি সঞ্চয় করেন তা কখনও এমন কিছু হওয়া উচিত নয় যা আপনি কেবলমাত্র ভিত্তিক অনুসন্ধান করবেন search এটি ওয়ার্ডপ্রেসের সমস্ত মেটা টেবিল জুড়ে প্রযোজ্য। মেটা মূলত মেটা_কি দ্বারা টেনে আনার জন্য ডিজাইন করা হয়েছে, মেটা_ভ্যালু দ্বারা নয়। বিভাগসমূহ সম্ভাব্য মানগুলিকে একটি সেটে সীমাবদ্ধ করে এবং তথ্যকে আলাদাভাবে সংগঠিত করে, তাই যখন "মান" আপনি কী নির্বাচন করছেন তা গণনা করে তারা আরও ভাল করে।

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

রেফারেন্সের জন্য, WordPress.org এ আমাদের প্রায় 11 মিলিয়ন ব্যবহারকারী নিবন্ধিত রয়েছে। ব্যবহারকারীর প্রতি মেটার পরিমাণ পরিবর্তিত হয়, সম্ভবত প্রতি সর্বনিম্ন 8 টি সারি এবং প্রায় 250-ইশ প্রায় সর্বাধিক। ইউজার টেবিলটি প্রায় 2.5 গিগাবাইট, প্রায় 4 জিবি ইউজারমেটা টেবিল। বেশিরভাগ অংশের জন্য, ঠিক আছে বলে মনে হয় তবে একবারে একবারে আমরা এমন কিছু অদ্ভুতর কোয়েরি পাই যা আমাদের অপটিমাইজ করতে হবে।


1
ওয়ার্ডপ্রেস.আর.গো মেটা টেবিলকে সূচক করে? এবং যদি তা হয় তবে কীভাবে এটি কনফিগার করা হয়েছে তার উদাহরণ আপনি দিতে পারেন?
dwenaus

1
ইউজারমেটা সারণীতে WordPress.org.org এ ডিফল্টর চেয়ে বেশি সূচি নেই। বিবিপ্রেসে একটি মেটা টেবিল ব্যবহৃত হয়েছে যেখানে আমরা ফর্মের একটি অতিরিক্ত কেইওয়াই যুক্ত করেছি(object_type,meta_key,meta_value(50))
অটো

ধন্যবাদ অটো আমার ওয়ার্ডপ্রেস ক্যোয়ারী পারফরম্যান্স প্রোফাইলিং / নির্ণয়ের জন্য আপনার কাছে কোনও বিশেষ পরামর্শ আছে?
সুনায়ত্তসত্ত্ব

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

5

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

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

তবে এখন যদি আপনার কোনও পারফরম্যান্স সমস্যা না থাকে তবে আপনি কোনও উল্লেখযোগ্য সমন্বয় না করেই আরও বেশি বাড়তে পারেন। আপনি যখন পারফরম্যান্স সংক্রান্ত সমস্যাগুলি পেতে শুরু করেন কেবলমাত্র ডিবিকে একটি দ্রুত সার্ভারে সরিয়ে নিয়ে যান, ডব্লিউপি সেই তথ্য অ্যাক্সেসের উপায় হিসাবে আপনি যে কোনও হেরফের করতে পারেন তার চেয়ে বেশি কার্যকর।

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