· 8 years ago · Apr 16, 2018, 11:20 PM
1<?php
2// Connect to MySQL and use DB
3$link = mysql_connect( 'tig.mysql.master', 'ezp', 'publish' ) or die( 'Could not connect: ' . mysql_error() );
4mysql_select_db( 'gha_4_3_0' ) or die( 'Could not select database' );
5
6$query = 'DROP TABLE if exists perfomance_test';
7$result = mysql_query( $query ) or die( 'Query failed: ' . mysql_error() );
8$timings = array(
9 'insert' => array(),
10 'select' => array()
11);
12
13$t = microtime( true );
14
15// Create schema
16$query = '
17CREATE TABLE perfomance_test(
18 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
19 `tst_txt` text,
20 PRIMARY KEY(`id`)
21)
22ENGINE=InnoDB DEFAULT CHARSET=utf8';
23$result = mysql_query( $query ) or die( 'Query failed: ' . mysql_error() );
24
25// Insert data
26$i = microtime( true );
27for( $k = 0; $k < 100; $k++ ) {
28 $query = 'INSERT INTO perfomance_test (tst_txt) VALUES ( \'test line' . $k . '\' );';
29 $result = mysql_query( $query ) or die( 'Query failed: ' . mysql_error() );
30 $timings['insert'][] = microtime( true ) - $i;
31 $i = microtime( true );
32}
33
34// Read data
35$s = microtime( true );
36for( $j = 0; $j < 30000; $j++ ) {
37 $query = 'SELECT * FROM perfomance_test WHERE id > ' . rand( 0, 100 ) . ' LIMIT 10;';
38 $result = mysql_query( $query ) or die( 'Query failed: ' . mysql_error() );
39 $timings['select'][] = microtime( true ) - $s;
40 $s = microtime( true );
41}
42
43// remove shema
44mysql_free_result( $result );
45$query = 'DROP TABLE if exists perfomance_test';
46$result = mysql_query( $query ) or die( 'Query failed: ' . mysql_error() );
47mysql_close( $link );
48
49// output results
50echo 'Execution time: ' . number_format( microtime( true ) - $t , 2 ) . "\n";
51echo 'AVG Insert Query time: ' . number_format( array_sum( $timings['insert'] ) / count( $timings['insert'] ), 6 ) . "\n";
52echo 'AVG Selet Query time: ' . number_format( array_sum( $timings['select'] ) / count( $timings['insert'] ), 6 ) . "\n";
53?>