2012-02-05 20 views
5

का उपयोग कर एसक्लाइट में साझा पेजर कैश को सक्षम करें मैं स्क्लाइट सुविधाओं का अध्ययन कर रहा हूं और मैंने SQLite Shared-Cache Mode को डिफ़ॉल्ट रूप से अक्षम किया है।PHP पीडीओ

साझा-कैश है:

एम्बेडेड सर्वर

क्योंकि यह सूत्र या प्रक्रियाओं के बीच एक भी डेटा और स्कीमा कैश के शेयरों में इस्तेमाल के इरादे। मुझे PHP (और पायथन) में एसक्लाइट (साझा-कैश के साथ) का उपयोग करने में दिलचस्पी है, इसलिए मेरे प्रश्न हैं:

1) क्या एक पीडीओ कनेक्शन में एक पीडीओ कनेक्शन एसकलाइट डीबी को एक अलग पृथक कनेक्शन माना जाता है?

2) यदि हां, साझा-कैश मोड का उपयोग करके उच्च समेकन परिदृश्य में प्रदर्शन में सुधार हो सकता है;

int sqlite3_enable_shared_cache(int); 

कैसे पीडीओ के माध्यम से उस समारोह कॉल करने के लिए: साझा-संचय मोड एक सक्रिय करने के लिए इस सी समारोह कॉल करने के लिए है?

ऐसा लगभग असंभव लगता है लेकिन शायद एक समाधान है।

शुभकामनाओं सहित, फैबियो बुडा वेब डेवलपर/डिजाइनर @netdesign

उत्तर

0

मैं तुम्हारे लिए एक जवाब खोजने के लिए PHP स्रोत कोड के माध्यम से खोज की है। ext/pdo_sqlite/ में कोई फ़ाइल कभी भी sqlite3_enable_shared_cache फ़ंक्शन पर कॉल नहीं कर रही है, जिसका अर्थ है कि यह लागू नहीं किया गया है।

+0

यह वही है जो मैंने सोचा था ... –

5

आप PHP कोड में SQLite साझा कैश सुविधा को सक्षम करने के लिए निम्न चाल कर सकते हैं:

define('SQLITE3_OPEN_SHAREDCACHE' , 0x00020000); 
$sqlite = new SQLite3('sqlite.db3' , SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE |  SQLITE3_OPEN_SHAREDCACHE); 

और यह काम करता है हालांकि कुछ बदसूरत - 10k उन पर प्रदर्शन परीक्षणों डेटाबेस एक छोटे (~ 3%) प्रदर्शन से पता चलता थू थू। ऐसा लगता है कि यह क्वेरी (परिणाम) कैश नहीं है, लेकिन कच्चे तालिका डेटा की स्मृति कैश है। यही कारण है कि इसे केवल उच्च समेकन स्तर के साथ वास्तव में विशाल डेटाबेस पर लाभ होना चाहिए।

+1

यह उत्तर बहुत बढ़िया है, हालांकि अनुशंसित उदाहरण दिखाता है कि पीडीओ के साथ निर्धारित स्थिरता का उपयोग कैसे करें – Sasho

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