2009-10-27 9 views

उत्तर

29

mysql में builtin profiler है। आप set profiling=1; जारी करके प्रोफाइलिंग सक्षम कर सकते हैं और निष्पादन समय प्राप्त करने के लिए show profiles; का उपयोग कर सकते हैं।

+0

और प्रोफ़ाइल दिखाएं; –

+0

यह वही है जो मैं देख रहा था धन्यवाद – mck89

+0

[अस्वीकृत !!] (http://dev.mysql.com/doc/refman/5.6/en/performance-schema.html) – bobobobo

6

यदि PHP का उपयोग कर रहे हैं .. आप क्वेरी से पहले microtime() का उपयोग कर सकते हैं और यह पूछने के बाद क्वेरी को निष्पादित करने में कितना समय लगेगा।

$sql_query='SELECT * FROM table'; 
$msc=microtime(true); 
$mysql_query($sql_query); 
$msc=microtime(true)-$msc; 
echo $msc.' seconds'; // in seconds 
echo ($msc*1000).' milliseconds'; // in millseconds 
+0

यह आपको नहीं बताता है कि कब तक यह MySQL ले लिया क्वेरी निष्पादित करने के लिए। यह आपको बताता है कि PHP को अनुरोध भेजने के लिए कितना समय लगा, इसे प्राप्त करने की प्रतीक्षा करें, और परिणाम प्राप्त करने के लिए। यह PHP क्लाइंट पर जो भी हो रहा है, उससे धीमा हो जाएगा और यदि PHP क्लाइंट और MySQL सर्वर के बीच कोई विलंबता है, तो परिणाम और गलत होंगे। –

+0

मुझे इससे अजीब परिणाम मिलते हैं, कभी-कभी यह 8000 पंक्तियों के लिए '2.15 एस 'की रिपोर्ट करता है, दूसरी बार 6000 पंक्तियों के लिए' 1,503,023,491.52 एस' रिपोर्ट करता है। यदि मैं 'number_format ($ msc, 2) 'लागू करता हूं तो मुझे ईवेंट अजनबी परिणाम नकारात्मक संख्याएं मिलती हैं। – Slam

5

इस प्रयास करें ...

mysql_query("SET profiling = 1;"); 
if (mysql_errno()) { die("ERROR ".mysql_errno($link) . ": " . mysql_error($link)); } 

/* It goes without saying that this is your actual query that you want to measure the execution time of */ 
$query="SELECT some_field_name FROM some_table_name"; 
$result = mysql_query($query); 
if (mysql_errno()) { die("ERROR ".mysql_errno($link) . ": " . mysql_error($link)); } 

$exec_time_result=mysql_query("SELECT query_id, SUM(duration) FROM information_schema.profiling GROUP BY query_id ORDER BY query_id DESC LIMIT 1;"); 
if (mysql_errno()) { die("ERROR ".mysql_errno($link) . ": " . mysql_error($link)); } 
$exec_time_row = mysql_fetch_array($exec_time_result); 

echo "<p>Query executed in ".$exec_time_row[1].' seconds'; 
+0

इसे एक MySQL प्रश्न के रूप में टैग किया गया है। MySQL का उपयोग करने वाले प्रत्येक व्यक्ति PHP का उपयोग नहीं कर रहा है। –

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