सिद्धांत रूप में, एक ट्रिगर सारांश तालिका को सटीक रूप से तब तक अद्यतन रख सकता है, जब तक:
- आप ट्रिगर को अक्षम नहीं करते हैं
- आप सीधे सारांश तालिका को अपडेट नहीं करते हैं
- आप TRUNCATE TABLE (जैसा आपने नोट किया है) के माध्यम से स्रोत डेटा में परिवर्तन नहीं करते हैं
इसके अलावा:
- आपको सारांश तालिका को सही प्रारंभिक मान के साथ सीड करना होगा
- आपको स्रोत तालिका और सारांश तालिका दोनों के लिए InnoDB का उपयोग करना चाहिए, इसलिए अद्यतन परमाणु हैं
सारांश तालिका को बनाए रखना denormalization का एक उदाहरण है। . जैसा कि सभी सामान्यीकरण के साथ होता है, यह डेटा विसंगतियों का जोखिम उठाता है। आप डेटा अखंडता बनाए रखने के लिए जिम्मेदार हैं; डेटाबेस सीमित है कि यह आपको ऐसा करने में कितनी मदद कर सकता है।
मेरा सुझाव है कि आपको यह सुनिश्चित करने के लिए समय-समय पर सारांश तालिका को दोबारा जांचना होगा (उदाहरण के लिए प्रति घंटा पर्याप्त हो सकता है) यह सुनिश्चित करने के लिए कि यह सिंक से बाहर नहीं गया है, और यदि यह है तो इसे सही करें। ऐसा करना आप पर निर्भर करता है, क्योंकि डेटाबेस आपके लिए इसकी जांच नहीं कर सकता है।