পোস্টগ্রিসে পুরানো রেকর্ডগুলির স্বয়ংক্রিয়ভাবে বার্ধক্যজনিত (মোছা)


15

বার্ধক্যজনিত পুরানো রেকর্ডগুলি সমর্থন করার জন্য কি পোস্টগ্রিসের কোনও বৈশিষ্ট্য রয়েছে?

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


বিভাজন ব্যবহার করুন। কেবল রেকর্ড মুছে ফেলা ডিস্কে সারণির আকার হ্রাস করবে না।
সিভান

@ সিভান আপনার প্রস্তাবনাটি কি তার ইস্যুটি ডিস্ক আকার হিসাবে ধরে নিচ্ছে না? যদি তার সমস্যাটি সম্পাদনের সময় ক্যোয়ারী হয় তবে মনে হয় মুছে ফেলা সম্ভবত বিভাজনের চেয়ে সহজ উত্তর হতে পারে, না? (এখনও এটি নিজেকে বোঝার চেষ্টা করছি)
স্টেফেন্ম 18

1
সমস্যাটি হ'ল লগ রেকর্ডগুলি নির্দিষ্ট সময়ের পরে আর আকর্ষণীয় হয় না। পুরানো সারিগুলি মোছার জন্য নতুন নতুন সারিগুলির জন্য জায়গা তৈরি করা উচিত।
তুলসী বাউরক

উত্তর:


15

সময় ভিত্তিক শাসন ব্যবস্থায় স্বয়ংক্রিয়ভাবে সারিগুলি মুছে ফেলার জন্য কোনও বৈশিষ্ট্য অন্তর্নির্মিত নেই (যা আমি জানতাম)।

আপনি সাধারণ কমান্ডগুলির সময় নির্ধারণের জন্য ক্রোন-কাজটি দৈনিক চালিয়ে যেতেDELETE পারেন ( পিসিএজেন্ট ব্যবহার করতে)

অথবা আপনি কি ব্যবহার করতে পারে পার্টিশন সাপ্তাহিক পার্টিশন সঙ্গে যে একটি মাস্টার টেবিল থেকে উত্তরাধিকারী দেয় সেটিতে কল log। এটি মুছে ফেলা খুব সস্তা করে তুলবে : কেবল সর্বশেষ দুই সপ্তাহ রাখুন এবং পুরানো পার্টিশন ফেলে দিন।

মাস্টার টেবিলে একটি RULEবা একটি TRIGGERতৈরি করুন যা সিস্টেমের সময়ের উপর ভিত্তি করে বর্তমান সপ্তাহের বিভাজনে INSERT গুলি পুনঃনির্দেশ করে। সর্বদা মাস্টার টেবিলে লগইন করুন log। সময়ের আগে শিশু সারণী তৈরি করুন। নিশ্চিত হতে কয়েক সপ্তাহ আগে তা নিশ্চিত করুন এবং সাপ্তাহিক ক্রোন জব চালান যা ভবিষ্যতের চাইল্ড টেবিলগুলি যুক্ত করে ...

আছে ম্যানুয়াল কোড উদাহরণ
একটি plpgsql ফাংশন সম্পর্কিত সম্পর্কিত উত্তর স্বয়ংক্রিয়ভাবে টেবিল তৈরি করে:

সম্পর্কিত সমাধান RULEINSERT গুলি পুনর্নির্দেশ করতে একটি পুনরায় তৈরি করে। একটি ট্রিগার ফাংশন বর্তমান পার্টিশনে গতিশীলভাবে লিখতে পারে ...

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