2008-10-28 9 views
29

मुझे a posting on the MySQL forums from 2005 मिला, लेकिन उससे भी ज्यादा कुछ नहीं। उस पर आधारित, यह संभव नहीं है। लेकिन 3-4 साल में बहुत कुछ बदल सकता है।क्या MySQL में अनुक्रमित दृश्य होना संभव है?

क्या मैं के लिए देख रहा हूँ एक दृश्य के ऊपर एक सूचकांक तालिका unindexed रह में देखा जाता है, लेकिन करने के लिए एक तरीका है। इंडेक्सिंग लेखन प्रक्रिया को नुकसान पहुंचाती है और यह तालिका काफी बार लिखी जाती है (उस बिंदु पर जहां अनुक्रमण सब कुछ क्रॉल में धीमा हो जाता है)। हालांकि, एक सूचकांक की कमी मेरे प्रश्नों को दर्द से धीमा कर देती है।

+0

http://stackoverflow.com/q/7922675/632951 देखें – Pacerier

उत्तर

28

मैं MySQL नहीं लगता कि जो तुम क्या आवश्यकता होगी है materialized दृश्य का समर्थन करता है, लेकिन यह वैसे भी इस स्थिति में मदद नहीं करेगा। चाहे इंडेक्स दृश्य पर या अंतर्निहित तालिका पर है, अंतर्निहित तालिका के अपडेट के दौरान इसे किसी बिंदु पर लिखा और अपडेट किया जाना चाहिए, इसलिए यह अभी भी लिखने की गति के मुद्दों का कारण बन जाएगा।

आपकी सर्वश्रेष्ठ शर्त शायद समय सारणी अपडेट करने वाली सारांश सारणी बनाना होगा।

+1

धन्यवाद। मैंने भौतिक दृश्यों पर कुछ और खोज किया, और ऐसा लगता है कि आप सही हैं। –

7

आप अपनी विश्लेषणात्मक डाटा प्रोसेसिंग से अपने लेनदेन प्रसंस्करण डेटा सार संक्षेप ताकि वे दोनों उनके अद्वितीय जरूरतों को पूरा करने विशेषज्ञता प्राप्त किया जा सकता है पर विचार किया है?

मूल विचार किया जा रहा है आप डेटा है कि नियमित रूप से संशोधित किया गया है में से एक संस्करण है, इस लेनदेन प्रसंस्करण की ओर हो सकता है और भारी सामान्य और प्रकाश अनुक्रमित की आवश्यकता है ताकि लिखने आपरेशन तेजी से कर रहे हैं होगा। आंकड़ों का एक दूसरा संस्करण विश्लेषणात्मक प्रसंस्करण के लिए संरचित है और तेजी से रिपोर्टिंग संचालन के लिए कम सामान्यीकृत और अधिक अनुक्रमित होता है।

विश्लेषणात्मक प्रसंस्करण के आसपास संरचित डेटा आम तौर पर डेटा वेयरहाउसिंग के घन पद्धति के आसपास बनाया जाता है, जो घन के किनारों का प्रतिनिधित्व करने वाले घन और आयाम तालिकाओं के पक्षों का प्रतिनिधित्व करने वाली तथ्य सारणी से बना होता है।

+0

वास्तव में यह है कि मैं अब क्या कर रहा हूं। मुझे लगता है। मेरे पास एक सारणी है जिसके पास डेटा है जो मुझे नियमित आधार पर अपडेट किया गया है जो प्रश्नों के लिए अनुक्रमित है, इसलिए मुझे अनुक्रमित तालिका को अद्यतन करने के लिए केवल [समय की लंबी इकाई] के बाद अनइंस्टेक्ड टेबल से पूछना होगा नए आंकड़े। –

0

क्या आप केवल एक अनुक्रमित दृश्य चाहते हैं? यह असंभव है कि केवल एक सूचकांक वाली तालिका में लिखना विघटनकारी होगा। क्या कोई प्राथमिक कुंजी नहीं है?

तो प्रत्येक रिकॉर्ड बड़ी है, आप पता लगाना है कि यह कैसे कम करने के लिए द्वारा प्रदर्शन में सुधार हो सकता है। या आपको आवश्यक इंडेक्स की लंबाई कम करें।

यदि यह केवल एक लिखने वाली तालिका है (यानी आपको अपडेट करने की आवश्यकता नहीं है), यह इसे संग्रहीत करना शुरू करने के लिए MySQL में घातक हो सकता है, या अन्यथा रिकॉर्ड (और इंडेक्स कुंजी) को हटाना, इंडेक्स को शुरू करना आवश्यक है नए इंडेक्स मूल्यों को जोड़ने के बजाए हटाए गए कुंजियों से स्लॉट भरना (पुनः उपयोग करना)। Counterteruitive, लेकिन आप इस मामले में एक बड़ी मेज के साथ बेहतर हो।

2

Flexviews अंतर्निहित तालिकाओं में परिवर्तनों को ट्रैक करके और भौतिक दृश्य के रूप में कार्य करने वाली तालिका को अपडेट करके MySQL में भौतिक दृश्यों का समर्थन करता है। इस दृष्टिकोण का अर्थ है कि दृश्य द्वारा समर्थित एसक्यूएल थोड़ा प्रतिबंधित है (क्योंकि चेंज लॉगिंग रूटीन को यह पता लगाना होगा कि किन तालिकाओं को इसे बदलने के लिए ट्रैक करना चाहिए), लेकिन जहां तक ​​मुझे पता है कि यह सबसे नज़दीकी है, आप MySQL में भौतिक दृश्यों को प्राप्त कर सकते हैं ।

संबंधित मुद्दे