আমাদের কাছে একটি মাইএসকিএল টেবিল রয়েছে যে কোনও সময়ে প্রায় 12 মিলিয়ন সারি রয়েছে। টেবিলের আকার কিছুটা পরিচালনাযোগ্য রাখতে আমাদের পুরানো ডেটা মুছতে হবে।
এখনই আমরা ক্রোন জব ব্যবহার করে প্রতিদিন, মধ্যরাতে এই ক্যোয়ারীটি চালাচ্ছি:
DELETE FROM table WHERE endTime < '1393632001'
শেষবার যখন ক্যোয়ারীটি চালিত হয়েছিল তখন এটি 4,602,400 পরীক্ষা করে, 3 মিনিটের বেশি সময় নেয় এবং সিপিইউ ছাদ দিয়ে যায়।
পুরানো ডেটা সাফ করার পরেও আমরা সিপিইউ, সিঙ্ক্রোনাস ডিবি সংযোগগুলি, ডিস্ক কিউ গভীরতা ইত্যাদি অযৌক্তিকভাবে স্পাইকিং থেকে রক্ষা করতে কী করতে পারি?
পিএস: আপনি লক্ষ্য করবেন যে ক্যোয়ারীটি আমাদের ব্যবহার চক্রের মোটামুটি ইনপোর্টটিউন সময়ে ঘটছে। ধরে নিন যে আমরা ইতিমধ্যে ক্যোয়ারির সময়টি ব্যবহারের সর্বনিম্ন বিন্দুতে স্থানান্তরিত করেছি। এছাড়াও, "এন্ডটাইম" তে কোনও সূচি নেই এবং আমি যদি সম্ভব হয় তবে সেভাবেই রাখতে পছন্দ করবো কারণ সেখানে প্রচুর নিয়মিত একটি টন ডেটা sertedোকানো হচ্ছে, এবং খুব বেশি অনুসন্ধান নেই।