2012-07-08 18 views
5

मैं निम्नलिखित कोड का उपयोग कर एक mysql डेटाबेस से कनेक्ट कर रहा हूँ से कनेक्ट:डाटाबेस पर्ल

my $dbh = DBI->connect("DBI:mysql:test:localhost", $user, $pass) 
    or die $DBI::errstr; 
my $sqlQuery = $dbh->prepare($query) 
    or die "Can't prepare $query: $dbh->errstr\n"; 
my $rv = $sqlQuery->execute 
    or die "can't execute the query: $sqlQuery->errstr"; 

while (my @row= $sqlQuery->fetchrow_array()) { 
    # do something; 
} 

मेरे संदेह नहीं है: यह समय अपने आवेदन छोटे डीबीएस के साथ बातचीत कर रहा है जब तक ठीक है। लेकिन जब मैं इस एप्लिकेशन को लाइव वातावरण में ले जाता हूं जहां डीबी आकार 100 जीबी में हो सकता है, तो इस कोड के कारण कौन से प्रदर्शन समस्याएं हो सकती हैं। प्रभावी रूप से मैं क्या है पूछ रहा हूँ, लाइन पर -

@row= $sqlQuery->fetchrow_array(); 

विल पर्ल पूरे तालिका सामग्री की प्रतिलिपि और चर में डंप। यदि हां, तो क्या यह मेरे एप्लिकेशन के साथ-साथ डेटाबेस सर्वर के लिए महत्वपूर्ण प्रदर्शन समस्याएं नहीं पैदा करेगा?

उत्तर

3

लाइन में:

@row= $sqlQuery->fetchrow_array(); 

एक पंक्ति अता समय, पर्ल के लिए डेटाबेस से लौटा दी जाएगी अगर एक बड़े पैमाने पर डेटाबेस के साथ बातचीत आप एक चर करने के लिए क्वेरी के पूरे परिणाम सेट डंप नहीं होंगे।

$arrRef = $sqlQuery->fetchall_arrayref(); 

दूसरी ओर ..

+0

धन्यवाद कि मेरी चिंता का विषय जवाब – Amey

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