DATETIME फ़ील्ड के ऊपर DATE फ़ील्ड का उपयोग करते समय प्रदर्शन में बहुत बड़ा अंतर होता है। मेरे पास 4.000,000 से अधिक रिकॉर्ड वाली एक तालिका है और परीक्षण उद्देश्यों के लिए मैंने अपने स्वयं के सूचकांक दोनों के साथ 2 फ़ील्ड जोड़े हैं। एक DATETIME का उपयोग कर रहा है और दूसरा DATE का उपयोग कर रहा है।
मैंने MySQL क्वेरी कैश को ठीक से परीक्षण करने में सक्षम होने के लिए अक्षम कर दिया और 1000x के लिए उसी क्वेरी पर लूप किया:
SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
दिनांक समय सूचकांक:197.564 सेकंड।
SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
दिनांक सूचकांक:107.577 सेकंड।
दिनांक अनुक्रमित फ़ील्ड का उपयोग करने से प्रदर्शन में सुधार होता है:45.55%!!
इसलिए मैं कहूंगा कि यदि आप अपनी तालिका में बहुत अधिक डेटा की अपेक्षा कर रहे हैं, तो कृपया तारीख को समय से अलग करने पर विचार करें।