কীভাবে বিশাল বিক্রয়_ফ্ল্যাট_কোট সারণীগুলি পরিচালনা করবেন - পরিত্যক্ত কার্ট অস্বীকার সরান


13

পরিস্থিতি

আমাদের ম্যাজেন্টো ডাটাবেসে আমাদের কাছে তিনটি টেবিল রয়েছে যা খুব বড় আকার ধারণ করছে।

  1. বিক্রয়_ফ্ল্যাট_কোটা_শিপিং_রেট: 3045 এমবি
  2. বিক্রয়_ফ্ল্যাট_কোটা_ ঠিকানা: 1688 এমবি
  3. বিক্রয়_ফ্ল্যাট_কোটা: 1897 এমবি

এটি 6GB এর বেশি ডেটা।

এই টেবিলগুলি কীভাবে কাটা যায় সে সম্পর্কে আমি এই নিবন্ধটি পেয়েছি । এই নিবন্ধটি কেবল তৃতীয় সারণির কথা বলে।

আমি কাটা কাটা সম্পর্কে নিশ্চিত নই এবং আমি 60 দিনেরও বেশি পুরানো সমস্ত ডেটা মুছতে পছন্দ করি। নিবন্ধটি 17 মিলিয়ন রেকর্ডের কথা বলেছে - আমাদের কাছে 20 টি! আমি যদি সঠিক হয় তবে এই রেকর্ডগুলি মোছার ফলে টেবিলটি লক হবে না এবং আমি বর্তমানে এটি একটি পরীক্ষার ইনস্টলেশনতে পরীক্ষা করছি। এটি কাজ করে বলে মনে হচ্ছে এবং এটি সাইটের সাথে খুব বেশি বিরোধ নয়।

প্রশ্নাবলি

  • আমি জানতে চাই যে আমি অন্য দুটি টেবিলের জন্যও একই প্রশ্নটি ব্যবহার করতে পারি কিনা?
  • আমি ভাবছি এই টেবিলগুলি কীসের জন্য।

উত্তর:


22
DELETE FROM sales_flat_quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)

sales_flat_quote এবং এটি সম্পর্কিত টেবিলগুলি ক্যাসকেডে মুছে ফেলার জন্য বৈদেশিক কী সম্পর্ক ব্যবহার করে তাই প্রাথমিক সারণীতে মুছে ফেলা অন্যান্য টেবিলগুলিতে স্বয়ংক্রিয়ভাবে সম্পর্কিত সমস্ত এন্ট্রি মুছে দেয়।

একবার আপনি এটি আকারে নামিয়ে নেওয়ার পরে, আপনি সহজেই পর্যবেক্ষককে সংশোধন করতে পারেন (এখানে একটি মডিউল তৈরি করা বাধ্যতামূলক) যা প্রত্যাখ্যানিত কার্ট পুনরুদ্ধার এবং লগ-ইন ধরে রাখার জন্য কাস্টমাইজড রিটেনশন সহ প্রথম লিঙ্কে সম্পন্ন হওয়া সমস্ত উদ্ধৃতি সমাপ্ত করার জন্য মেয়াদোত্তীর্ণ উদ্ধৃতিগুলি পরিষ্কার করার কথা supposed যুক্তিসঙ্গত সময়ের জন্য গ্রাহকের উক্তিগুলিতে যাতে আপনার গ্রাহকরা অপ্রত্যাশিতভাবে তাদের কার্টটি খালি করে দেয় তখন পাগল হয়ে না যায়: না কি রূপান্তরিত উদ্ধৃতি রেকর্ডগুলি কখনও ম্যাজেন্টোতে মুছে ফেলা হয়?

বা ফ্যাবরিজিও ব্র্যাঙ্কার এওই কোট ক্লিনার ব্যবহার করুন

বিক্রয়_ফ্ল্যাট_কোট * টেবিলগুলিতে শপিং কার্টের সামগ্রী রয়েছে। এটি একটি উক্তি হিসাবে পরিচিত এবং গ্রাহক অর্ডার দেওয়া শেষ করার সিদ্ধান্ত না নেওয়া পর্যন্ত এটি রাখা হয়। বিক্রয়-অর্ডারে রূপান্তরিত সমাপ্ত উদ্ধৃতিগুলির জন্য, ম্যাগেন্টো স্বয়ংক্রিয়ভাবে ক্রোন জব দিয়ে তাদের সাফ করে দেয়। যুক্তিটি কখনও উন্মুক্ত উদ্ধৃতি অন্তর্ভুক্ত করার জন্য বাড়ানো হয়নি।


আমি দেখতে পাচ্ছি যে অন্য টেবিলের আকার হ্রাস পেয়েছে, তাই ক্যাসকেডিং কাজ করে। আমি এওই মডিউলটি পরীক্ষা করতে যাচ্ছি। এটি একটি ভাল টিপ!
এসপিআরবিএনএন

1
limit 1000000Days০ দিনের বেশি পুরানো সমস্ত রেকর্ড না হওয়া পর্যন্ত আমি বহুবার সেই স্ক্রিপ্টটি চালিয়েছিলাম। তারপরে আমি এওই কোট ক্লিনার মডিউলটি ইনস্টল করেছি। আমি কমপক্ষে টেস্ট মেশিনে - ওয়েবসাইটটি কাজ বন্ধ করে দেওয়ার কারণে আমি 20 মি মুছে ফেলার জন্য এওই মডিউলটি ব্যবহার করি নি। স্ক্রিপ্টটিতে কোনও সমস্যা হয়নি।
এসপিআরবিএনএন

1
আপনাকে স্বাগতম! ফ্যাবরিজিওর মডিউলটি উপলভ্য হওয়ার আগেই আমাকে সমস্যার সমাধান করতে হয়েছিল এবং তাই আপনার ক্লিনআপের অনুরূপ কিছু করার পরে পর্যবেক্ষক রুটে চলে গেল went বন্দুকটি সাফ করতে প্রায় 20 টি পাস লেগেছিল। এখন এটি নির্ধারিত পরিষ্কারের উপর, কোনও উদ্বেগের কথা নয়!
ফায়াসকো ল্যাবগুলি

আমি এমন কিছু রেকর্ড মুছতে চাই যাতে কোন গ্রাহক নেই।
লাভলী সেতিয়া

1

ম্যাজেন্টো 2-তে, 'বিক্রয়_ফ্ল্যাট_কোট'টি' কোট 'দিয়ে প্রতিস্থাপন করা হয়েছিল, সুতরাং এসকিউএল আদেশ অনুসরণ করে ম্যাজেন্টো 2-র ক্ষেত্রে এই সমস্যাটি সমাধান করা যাবে:

update quote set items_count = NULL

1
ধরনের, @ DELETE FROM quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)
ফিয়াসকের

0

যদিও ফায়াসকো ল্যাবসের সমাধান কাজ করে, আমি ঠিক গেট-গো থেকে একটি এক্সটেনশন দিয়ে শুরু করব Mage_Sales_Model_Quote_Resource_Collectionএবং চয়ন করার পুরানো উক্তিগুলি ফিল্টার করতে এবং মুছে ফেলার জন্য ব্যবহার করব । যথাযথ পদ্ধতি ব্যবহার করে আপনি নিশ্চিত করতে পারেন যে ডাটাবেস সীমাবদ্ধতা বা কাঁচা প্রশ্নের উপর নির্ভর না করে আপনার পরিচালনা কোনও ম্যাজেন্টো ইনস্টলেশনে কাজ করবে।

এর মতো কিছু (অনির্ধারিত) ...

$collection = Mage::getModel('sales/quote')->getCollection() 
    -->addFieldToSelect('entity_id') // this is important
    -->addFieldToFilter('created_at', array('lt' => 'some_date'));

foreach ($collection as $quote) {
    $quote->delete(); // safely delete selected quote
}

আপনি এটিকে প্রসারিত Mage_Logকরতে বা এর নিজস্ব একাকী এক্সটেনশন করতে পারেন make বেশ সহজ.


যখন এওইর ডাউনলোডের জন্য একটি কার্যকরী মডিউল প্রস্তুত থাকবে তখন কেন আমি আমার নিজস্ব মডিউল তৈরি করতে চাইব?
এসপিআরবিএনএন

1
এওই এক্সটেনশানগুলি দুর্দান্ত, সুতরাং আমি সেগুলিকে মোটেও অসম্মান করছি না। তবে আপনাকে কারণ জানাতে .. 1.এক্সটেনশনে ম্যানুয়াল প্রশ্নগুলি ব্যবহার করা এড়িয়ে চলুন। 2.সম্ভব হলে আপনার এক্সটেনশনগুলি স্বাধীন করার চেষ্টা করুন। DELETEএই জাতীয় অনুসন্ধানগুলি ডাটাবেস সীমাবদ্ধতার উপর নির্ভর করে যা ভবিষ্যতে পরিবর্তিত হতে পারে। 3.Magento কারখানার পদ্ধতিগুলি যথাযথভাবে ব্যবহার করুন।
সঙ্গীতলিফসমে

দেখে মনে হচ্ছে এটি কিছুটা আগে @ মিউজিকলিফিজমে তৈরি হয়েছিল .. সাধারণত তারা বেশ ভাল হয়
এরফান

0
DELETE FROM sales_flat_quote WHERE entity_id NOT IN (SELECT quote_id FROM sales_flat_order);

এই কোয়েরিটি সমস্ত উদ্ধৃতি মুছে ফেলবে, যেখানে আদেশে রূপান্তরিত হয়নি।

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