- ম্যাজেন্টোতে সূচকগুলি কীভাবে কাজ করে
- এটা ঠিক কি করে?
- কেন এটি প্রয়োজন?
উত্তর:
ম্যাজেন্টোতে বিভিন্ন ধরণের সূচক রয়েছে।
দ্রুত সূচকগুলি চালানোর জন্য সমস্ত সূচক রয়েছে।
আমি তাদের মধ্যে কেবল কয়েকটি এখানে আবরণ করব।
ফ্ল্যাট সূচক
এই জাতীয় 2 সূচক আছে। বিভাগগুলির জন্য একটি এবং পণ্যগুলির জন্য একটি।
ডিফল্টরূপে বিভাগ এবং পণ্য সত্তা (এবং গ্রাহক এবং গ্রাহকের ঠিকানা তবে তারা এই পরিস্থিতিতে গুরুত্বপূর্ণ নয়) হ'ল ইএভি সত্তা। এটি এক্সটেনসিবিলিটির জন্য খুব সুন্দর। তবে এটি একটি পারফরম্যান্স কিলার কারণ সমস্ত গুণাবলীর জন্য সমস্ত মান পেতে আপনার অনেকগুলি যোগদান বা একাধিক ক্যোয়ারী প্রয়োজন need
ফ্ল্যাট ইনডেক্সারটি এখানে আসে।
এটি EAV কাঠামোটিকে একটি সমতল কাঠামোতে রূপান্তর করে। আমি বলতে চাইছি এটি একটি টেবিল তৈরি করে (ম্যাজেন্টোতে প্রতিটি স্টোর ভিউয়ের জন্য একটি) যার একটি বৈশিষ্ট্যের সাথে সম্পর্কিত একটি কলাম রয়েছে। এটি নির্বাচনগুলি আরও দ্রুত করে তোলে। বিভাগগুলির জন্য সমস্ত বৈশিষ্ট্য টেবিল কলামে রূপান্তরিত হয়। কেবলমাত্র পণ্যগুলির জন্য আপনি 'পণ্য তালিকার জন্য ব্যবহৃত' হিসাবে চিহ্নিত করেছেন কারণ আপনি বিভিন্ন গুণাবলী সহ সমস্ত প্রকারের পণ্য বিক্রি করতে পারেন এবং গাজিলিয়ান কলাম দিয়ে একটি টেবিল তৈরি করা সম্ভব নাও হতে পারে।
এছাড়াও, কিছু পণ্য অক্ষম থাকতে পারে বা কোনও নির্দিষ্ট ওয়েবসাইটের সাথে নাও থাকতে পারে এবং অনুসন্ধানের জন্য এন্ট্রিগুলিতে সেগুলি অন্তর্ভুক্ত করার দরকার নেই। এগুলি সূচক দ্বারা বাদ দেওয়া হয়।
উত্পন্ন ফ্ল্যাট টেবিলগুলি ফ্রন্টে ডেটা পড়ার জন্য ব্যবহৃত হয়। ব্যাকএন্ড এখনও EAV কাঠামো ব্যবহার করে।
ক্যাটালগ অনুসন্ধান সূচি
আপনি অনেক গুণাবলী মান দ্বারা পণ্য সন্ধান করতে পারেন। তাদের মধ্যে কিছু ফ্ল্যাট ইনডেক্সার দ্বারা উত্পাদিত ফ্ল্যাট টেবিলগুলিতে অন্তর্ভুক্ত নাও হতে পারে। এই সূচি পণ্যগুলির জন্য অনুসন্ধানযোগ্য বৈশিষ্ট্যযুক্ত মানগুলির সাথে একটি সারণীতে পূরণ করে যাতে কীওয়ার্ডের ভিত্তিতে তাদের সন্ধান করা আরও সহজ। এক টেবিলের সমস্ত তথ্য (বা একটি ক্ষেত্র) থাকার কারণে সম্পূর্ণ পাঠ্য অনুসন্ধান এবং প্রাসঙ্গিক ফলাফলগুলি পাওয়া সম্ভব হয়।
পণ্যের দাম ।
একটি পণ্যের দাম অনেক পরিবর্তনশীল দ্বারা প্রভাবিত হতে পারে। উদাহরণস্বরূপ, গ্রাহক গ্রুপ, ওয়েবসাইট, ক্যাটালগ ছাড়ের নিয়ম।
উপরের মতো একই, তাদের দাম সহ পণ্যগুলি পাওয়ার অর্থ অনেকগুলি যোগদান বা একাধিক বাছাইয়ের অর্থ। এছাড়াও বান্ডিল পণ্যগুলিতে একটি অদ্ভুত দামের ব্যবস্থা রয়েছে। এই সূচকটি কিছু টেবিলগুলিতে ডেটা একত্রিত করে ( catalog_product_index_price_*
) এবং নির্বাচনগুলি (বাছাই এবং ফিল্টারিং) অনেক সহজ করে তোলে।
ক্যাটালগ ইউআরএল
পুনর্লিখনগুলি কোন url কোন পণ্য বা বিভাগের সাথে সম্পর্কিত তা নির্ধারণ করে এটি url পুনর্লিখনের নিয়মগুলি পরিষ্কার করে। ইউআরএল পরিচালনার অভ্যন্তরীণ সিস্টেমের পক্ষে কোনও অন-স্ট্যান্ডার্ড ইউআরএল কল করার সময় কোন পৃষ্ঠাটি দেখার উচিত তা সিদ্ধান্ত নেওয়া সহজ। সমস্ত পণ্য এবং বিভাগের URL কীগুলি অনুসন্ধান করার পরিবর্তে এটি কেবল একটি টেবিলটিতে অনুসন্ধান করে।
বিভাগের পণ্যগুলি
ম্যাজেন্টোতে আপনি 'ইস অ্যাঙ্কর' নামের একটি বিভাগের বৈশিষ্ট্যটি সত্য বা মিথ্যাতে সেট করতে পারেন। যদি এটি সত্য হয় তবে এর অর্থ হল যে প্রশ্নের বিভাগে এটির শিশু বিভাগ থেকে সমস্ত পণ্য তালিকাভুক্ত করা হবে। আবার, এই রিয়েলটাইমটি নির্ধারণ করা কেবল একটি টেবিল পড়ার চেয়ে আরও বেশি সংস্থান গ্রহণ করবে। এই সূচকটি আপনার ব্যাকএন্ডে সেট করা সমিতিগুলির ভিত্তিতে এবং বিভাগগুলিতে 'ইস অ্যাঙ্কার' পতাকাের ভিত্তিতে পণ্য এবং বিভাগগুলির মধ্যে সমিতি তৈরি করে।
স্টক স্থিতি
সহজ পণ্য জন্য এটি সহজ। এগুলি স্টক বা স্টকের বাইরে থাকতে পারে তবে কনফিগারযোগ্য, গোষ্ঠীযুক্ত এবং বান্ডিলের পক্ষে এত সহজ নয়। এগুলি মূল পণ্য সম্পর্কিত শিশু পণ্যগুলির উপর নির্ভর করে স্টক বা স্টকের বাইরে থাকতে পারে। আবার (আমি এখানে কেবল আমার স্ব-পুনরাবৃত্তি করছি) তাদের স্ট্যাটাসের আসল সময় পাওয়ার অর্থ অনেকগুলি ক্যোয়ারী হবে।
পণ্যের বৈশিষ্ট্য ।
এটি একই কারণে স্তরযুক্ত নেভিগেশনে ব্যবহার করা যেতে পারে এমন সমস্ত বৈশিষ্ট্য সংগ্রহ করে। দ্রুত পড়ার জন্য তাদের সকলকে এক জায়গায় রেখে দেওয়া।
ট্যাগ একীকরণ এটি
কি করে আমার কোনও ধারণা নেই। আমি কখনই বাস্তব লাইভ প্রকল্পে ট্যাগ ব্যবহার করি নি।
এটির জন্য মূল পোস্ট থেকে নেওয়া হিসাবে এটির জন্য ক্রেডিট নিতে পারবেন না: https://stackoverflow.com/questions/4945307/can-someone-explain-magentos-indexing-feature-in-detail
ম্যাজেন্টোর সূচিকাগুলি স্পিরিটে ডাটাবেস-স্তরের সূচকের অনুরূপ। অ্যান্টন যেমন বলেছে, কোনও সাইটের দ্রুত অপারেশন করার অনুমতি দেওয়া এটি ড্যানোরালাইমাইজেশন প্রক্রিয়া। আসুন আমি ম্যাজেন্টো ডাটাবেস কাঠামোর পিছনে কিছু চিন্তাভাবনা ব্যাখ্যা করার চেষ্টা করি এবং কেন এটি গতিতে পরিচালনার জন্য সূচকে প্রয়োজনীয় করে তোলে।
আরও একটি "সাধারণ" মাইএসকিউএল ডাটাবেসে ক্যাটালগ পণ্যগুলি সংরক্ষণ করার জন্য একটি সারণী এমন কিছু কাঠামোযুক্ত করা হবে:
PRODUCT:
product_id INT
sku VARCHAR
name VARCHAR
size VARCHAR
longdesc VARCHAR
shortdesc VARCHAR
... etc ...
এটি পুনরুদ্ধারের জন্য দ্রুত, তবে এটি এক টুকরো ইকমার্স সফ্টওয়্যারটির জন্য একটি মৌলিক সমস্যা ছেড়ে দেয়: আপনি আরও গুণাবলী যুক্ত করতে চাইলে আপনি কী করবেন? আপনি যদি খেলনা বিক্রি করেন এবং আকার আকারের কলামের চেয়ে আপনার বয়স_আরঞ্জ দরকার? ঠিক আছে, আপনি অন্য কলাম যুক্ত করতে পারেন, তবে এটি পরিষ্কার হওয়া উচিত যে একটি বড় স্টোরে (উদাহরণস্বরূপ ওয়ালমার্ট মনে করুন), এর ফলে সারিগুলি 90% খালি থাকে এবং নতুন বৈশিষ্ট্য রক্ষণাবেক্ষণের চেষ্টা অসম্ভবের কাছাকাছি।
এই সমস্যাটি মোকাবেলায়, ম্যাজেন্টো টেবিলগুলি ছোট ইউনিটে বিভক্ত করে। আমি এই উত্তরে পুরো EAV সিস্টেমটি পুনরায় তৈরি করতে চাই না, সুতরাং দয়া করে এই সরলিকৃত মডেলটি গ্রহণ করুন:
PRODUCT:
product_id INT
sku VARCHAR
PRODUCT_ATTRIBUTE_VALUES
product_id INT
attribute_id INT
value MISC
PRODUCT_ATTRIBUTES
attribute_id
name
এখন পণ্য_ট্রিবিউটে নতুন মানগুলি প্রবেশ করে এবং তারপরে প্রোডাক্ট_ট্রিবিউট_ভ্যালুগুলিতে সংযুক্ত রেকর্ড স্থাপন করে ইচ্ছামত বৈশিষ্ট্যগুলি যুক্ত করা সম্ভব। এটি মূলত ম্যাগেন্টো যা করে তা (আমি এখানে প্রদর্শিত চেয়ে ডেটাটাইপগুলির জন্য একটু বেশি সম্মানের সাথে)। আসলে, এখন দুটি পণ্যের মোটেই অভিন্ন ক্ষেত্র থাকার কোনও কারণ নেই, তাই আমরা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা অ্যাট্রিবিউট দিয়ে পুরো প্রোডাক্ট টাইপ তৈরি করতে পারি!
তবে এই নমনীয়তাটি ব্যয় করে আসে at আমি যদি আমার সিস্টেমে কোনও শার্টের রঙ (একটি তুচ্ছ উদাহরণ) খুঁজে পেতে চাই তবে আমার সন্ধান করতে হবে:
ম্যাজেন্টো এইভাবে কাজ করত, তবে এটি ধীরে ধীরে মারা গিয়েছিল। সুতরাং, আরও ভাল পারফরম্যান্সের অনুমতি দেওয়ার জন্য তারা একটি আপস করেছে: একবার দোকানের মালিক তাদের যে বৈশিষ্ট্যগুলি চান সেগুলি সংজ্ঞায়িত করলে, এগিয়ে যান এবং শুরু থেকেই বড় টেবিলটি তৈরি করুন। যখন কোনও পরিবর্তন হয়, স্থান থেকে এটিকে নাক করে আবার এটিকে উত্পন্ন করুন। এইভাবে, ডেটা প্রাথমিকভাবে আমাদের দুর্দান্ত নমনীয় ফর্ম্যাটে সংরক্ষণ করা হয় তবে একক টেবিল থেকে অনুসন্ধান করা হয়।
এই ফলাফলগুলির সারণী হ'ল ম্যাজেন্টো "সূচী"। যখন আপনি পুনরায় সূচি রাখবেন, আপনি পুরানো টেবিলটি ফুটিয়ে তুলছেন এবং আবার এটি তৈরি করছেন।
আশা করি বিষয়গুলি কিছুটা স্পষ্ট করে!
nuke it from space
, দুর্দান্ত :)
ম্যাজেন্টো একটি দুর্দান্ত শক্তিশালী এবং জটিল সিস্টেম। এটি প্রচুর পরিমাণে ডেটা দিয়ে কাজ করতে দেয়, তবে যখন প্রচুর রেকর্ডের সাথে ডাটাবেস ওভারলোড হয় তা ভারী এবং ধীর হয়ে যায়। ম্যাজেন্টো এই সমস্যাটি সমাধান করতে সূচি ব্যবহার করে। সূচকগুলি হ'ল কিছু ফ্ল্যাট ডেটা সহ অতিরিক্ত ডাটাবেস টেবিল, যা ডাটাবেস থেকে দ্রুত প্রতিক্রিয়াগুলি সংগঠিত করতে দেয়।
ডিফল্টরূপে, প্রতিটি সিস্টেমের সংরক্ষণে কোর সিস্টেম সূচি আপডেট করে। তবে কিছু ক্ষেত্রে আপনাকে এটি ম্যানুয়ালি করতে হবে, উদাহরণস্বরূপ কিছু ধরণের গণ ক্রিয়া ইত্যাদি You তবে কখনও কখনও এটি সমস্যার কারণ হয়।
উদাহরণস্বরূপ, আপনার যদি 10 কে + পণ্য এবং প্রচুর বিভাগ থাকে তবে 'ক্যাটালগ ইউআরএল পুনর্লিখন' সূচকটি পুনর্নির্মাণে কয়েক ঘন্টা সময় নিতে পারে। তারপরে পিএইচপি স্ক্রিপ্টটি কেবলমাত্র সর্বোচ্চ_অজুগতি_সময়ের ছাড়িয়ে যেতে পারে। কমান্ড লাইন থেকে পুনর্নির্দেশ প্রক্রিয়া চালিয়ে বেশ কয়েকটি সমস্যা সমাধানের উপায় রয়েছে।