यदि आप वास्तव में इसे लिस्प में लिखते हैं तो आपको अधिक समय नहीं लेना चाहिए। मैंने लगभग दोपहर में लिस्प में एक साधारण डेटाबेस इंजन लिखा था। यहां एक उदाहरण दिया गया है:
(select movies (<= 1990 year 2000) (member director '(terry-gilliam tim-burton)))
यहां, 'चयन' एक मैक्रो है। यह भविष्यवाणियों को स्कैन करता है जो प्रतीकों के लिए इसका पालन करते हैं जो फ़ील्ड नाम हैं और उन्हें डेटाबेस में फ़ील्ड में बांधते हैं। फिर यह एक ऐसा फ़ंक्शन लिखता है जो फ़ंक्शन को पास किए गए रिकॉर्ड के मानों पर उन फ़ील्ड को बांधता है, और उस फ़ंक्शन का उपयोग करके तालिका फ़िल्टर करता है। मैक्रो कुछ इस तरह के लिए विस्तारित:
(flet ((filter (item)
(let ((year (movie-year item))
(director (movie-director item)))
(and (<= 1990 year 2000)
(member director '(terry-gilliam tim-burton))))))
(loop for item in movies
if (filter item) collect item))
यह इस तरह से कर रही है (वास्तव में लिस्प में, बजाय सिर्फ एक लिस्प की तरह सिंटैक्स का उपयोग) के बारे में अच्छी बात यह है कि आप मुक्त करने के लिए संकलन हो रही है।मेरे सिस्टम पर, उपरोक्त कोड डेटाबेस इंजन द्वारा व्याख्या नहीं किया गया है, यह वास्तव में प्रोग्राम का एक संकलित हिस्सा है (सी में ऐसा नहीं कर सकता, अब आप कर सकते हैं?)। नतीजतन यह तेज़ है, भले ही डेटाबेस कोड स्वयं ('चयन' और तालिका परिभाषाओं के लिए कोड) केवल कुछ पंक्तियां लंबी है। डेटाबेस पूरी तरह से स्मृति निवासी है, लेकिन इससे कोई फर्क नहीं पड़ता ... आप बाहरी डेटाबेस को समायोजित करने के लिए केवल मैक्रो बदल सकते हैं और यहां तक कि इसे इंडेक्स का उपयोग भी लिख सकते हैं। जिस परियोजना पर मैं काम कर रहा था, उसके लिए यह काफी अच्छा था, इसलिए मैंने इंडेक्स या कुछ भी फैंसी नहीं जोड़ा।
इसके बारे में मेरा पसंदीदा बात यह है कि जब यह एसक्यूएल के सभी संक्षिप्तता रहता है, कोड इसके चारों ओर कोड से अलग नहीं है क्योंकि यह सभी लिस्प है। आप उन्हें उद्धृत करने के बारे में चिंता किए बिना अपने खोज शब्द में चर प्रस्तुत कर सकते हैं।
स्रोत
2009-06-01 07:21:53
MySQL और स्टोरेज इंजन पारिस्थितिकी तंत्र यह है: स्टोरेज इंजन परत जो अपनी मूल भंडारण फाइल सिस्टम को ठीक उसके ऊपर साइटों है। उच्च स्तर SQL क्वेरी पार्सर, अनुकूलक, क्वेरी कैश, आदि MySQL के प्लगेबल भंडारण इंजन वास्तुकला को इस तरह से डिजाइन किया गया है से बना रहे हैं कि स्टोरेज इंजन देशी भंडारण युक्ति (रों) और अपने बीच एक जुदाई परत है उच्च परतें, जैसे कि MySQL क्लाइंट। –