· 9 years ago · Oct 03, 2016, 02:54 PM
1<?php
2
3$_SERVER["dbHost"] = "localhost";
4$_SERVER["dbName"] = "dev_iut";
5$_SERVER["dbUserName"] = "php";
6$_SERVER["dbPassword"] = "php";
7
8// ================================================== CACHE GENERATOR ==================================================
9
10$_SERVER["cacheChar"] = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
11$_SERVER["cacheCharLength"] = strlen($_SERVER["cacheChar"]);
12$_SERVER["cacheEmailDomain"] = array(
13 "aol.com", "att.net", "comcast.net", "facebook.com", "gmail.com", "gmx.com", "googlemail.com",
14 "google.com", "hotmail.com", "hotmail.co.uk", "mac.com", "me.com", "mail.com", "msn.com",
15 "live.com", "sbcglobal.net", "verizon.net", "yahoo.com", "yahoo.co.uk",
16
17 /* Other global domains */
18 "email.com", "games.com" /* AOL */, "gmx.net", "hush.com", "hushmail.com", "icloud.com", "inbox.com",
19 "lavabit.com", "love.com" /* AOL */, "outlook.com", "pobox.com", "rocketmail.com" /* Yahoo */,
20 "safe-mail.net", "wow.com" /* AOL */, "ygm.com" /* AOL */, "ymail.com" /* Yahoo */, "zoho.com", "fastmail.fm",
21 "yandex.com",
22
23 /* United States ISP domains */
24 "bellsouth.net", "charter.net", "comcast.net", "cox.net", "earthlink.net", "juno.com",
25
26 /* British ISP domains */
27 "btinternet.com", "virginmedia.com", "blueyonder.co.uk", "freeserve.co.uk", "live.co.uk",
28 "ntlworld.com", "o2.co.uk", "orange.net", "sky.com", "talktalk.co.uk", "tiscali.co.uk",
29 "virgin.net", "wanadoo.co.uk", "bt.com",
30
31 /* Domains used in Asia */
32 "sina.com", "qq.com", "naver.com", "hanmail.net", "daum.net", "nate.com", "yahoo.co.jp", "yahoo.co.kr",
33 "yahoo.co.id", "yahoo.co.in", "yahoo.com.sg", "yahoo.com.ph",
34
35 /* French ISP domains */
36 "hotmail.fr", "live.fr", "laposte.net", "yahoo.fr", "wanadoo.fr", "orange.fr", "gmx.fr", "sfr.fr", "neuf.fr", "free.fr",
37
38 /* German ISP domains */
39 "gmx.de", "hotmail.de", "live.de", "online.de", "t-online.de" /* T-Mobile */, "web.de", "yahoo.de",
40
41 /* Russian ISP domains */
42 "mail.ru", "rambler.ru", "yandex.ru", "ya.ru", "list.ru",
43
44 /* Belgian ISP domains */
45 "hotmail.be", "live.be", "skynet.be", "voo.be", "tvcablenet.be", "telenet.be",
46
47 /* Argentinian ISP domains */
48 "hotmail.com.ar", "live.com.ar", "yahoo.com.ar", "fibertel.com.ar", "speedy.com.ar", "arnet.com.ar",
49
50 /* Domains used in Mexico */
51 "hotmail.com", "gmail.com", "yahoo.com.mx", "live.com.mx", "yahoo.com", "hotmail.es", "live.com", "hotmail.com.mx",
52 "prodigy.net.mx", "msn.com"
53);
54$_SERVER["cacheEmailDomainLength"] = sizeof($_SERVER["cacheEmailDomain"]) - 1;
55
56//echo sizeof($_SERVER["cacheEmailDomain"]);
57
58//======================================================= RANDOM =======================================================
59
60function generateRandomEmail()
61{
62 return generateRandomString(10) . "@" . $_SERVER["cacheEmailDomain"][rand(0, $_SERVER["cacheEmailDomainLength"])];
63}
64
65function generateRandomString($length = 10)
66{
67 return substr(str_shuffle($_SERVER["cacheChar"]), 0, $length);
68}
69
70
71$_SERVER["db"] = new mysqli($_SERVER["dbHost"], $_SERVER["dbUserName"], $_SERVER["dbPassword"], $_SERVER["dbName"]);
72
73if ($_SERVER["db"]->connect_errno > 0) {
74 die('Unable to connect to database [' . $_SERVER["db"]->connect_error . ']');
75}
76
77//===================================================== TIME COUNT =====================================================
78
79function startTime($name)
80{
81 $_SERVER[$name] = microtime(true);
82}
83
84function diffTime($name, $time)
85{
86 return $time - $_SERVER[$name];
87}
88
89function diffTimeToMs($name, $time)
90{
91 return diffTime($name, $time);
92}
93
94function byFile($count)
95{
96 $db = new mysqli($_SERVER["dbHost"], $_SERVER["dbUserName"], $_SERVER["dbPassword"], $_SERVER["dbName"]);
97 $fp = fopen('data.csv', 'w');
98 for ($i = 0; $i < $count; $i++) {
99 fputcsv($fp, array(
100 "name" => generateRandomString(10),
101 "address" => generateRandomString(10),
102 "type" => rand(0, 10),
103 "deleted" => rand(0, 1),
104 "email" => generateRandomEmail()
105 ));
106 }
107 fclose($fp);
108 startTime("longWays");
109 $sql = "LOAD DATA INFILE '/var/www/data.csv'
110 FIELDS TERMINATED BY ','
111 ESCAPED BY ''
112 LINES TERMINATED BY '\n'
113 (name, address, type, deleted, email)";
114 if (!$result = $db->query($sql)) {
115 die('There was an error running the query [' . $db->error . ']');
116 }
117 echo $count . " longWaysPDO : " . diffTimeToMs("longWays", microtime(true)) . " s\n";
118}
119
120function byPacket($count, $packetSize)
121{
122 $data = array(
123 "name" => generateRandomString(49),
124 "address" => generateRandomString(49),
125 "type" => rand(0, 50000),
126 "email" => generateRandomEmail(),
127 );
128 startTime("byPacket");
129 for ($i = 0; $i < $count / $packetSize; $i++) {
130 for ($j = 0; $j < $packetSize; $j++) {
131 $sql = "INSERT INTO dev_iut.test(name, address, type, email)
132 VALUES";
133 $sqlValue[] = "(\"" . addslashes($data["name"]) . "\", \""
134 . addslashes($data["address"]) . "\", \""
135 . $data["type"] . "\", \""
136 . addslashes($data["email"]) .
137 "\")";
138 if (!$result = $_SERVER["db"]->query($sql . implode(',', $sqlValue))) {
139 die('There was an error running the query [' . $_SERVER["db"]->error . ']');
140 }
141 }
142
143 }
144 echo $count . " byPacket : " . diffTimeToMs("byPacket", microtime(true)) . " s\n";
145}
146
147function longWays($count)
148{
149 $db = new mysqli($_SERVER["dbHost"], $_SERVER["dbUserName"], $_SERVER["dbPassword"], $_SERVER["dbName"]);
150
151 startTime("longWays");
152 for ($i = 0; $i < $count; $i++) {
153 $data = array(
154 "name" => generateRandomString(10),
155 "address" => generateRandomString(10),
156 "type" => rand(0, 10),
157 "email" => generateRandomEmail(),
158 "deleted" => rand(0, 1)
159 );
160 $sql = "INSERT INTO dev_iut.test(name, address, type, email, deleted)
161 VALUES (\"" . addslashes($data["name"]) . "\", \""
162 . addslashes($data["address"]) . "\", \""
163 . $data["type"] . "\", \""
164 . $data["deleted"] . "\", \""
165 . addslashes($data["email"]) .
166 "\")\n";
167 if (!$result = $db->query($sql)) {
168 die('There was an error running the query [' . $db->error . ']');
169 }
170 }
171 echo $count . " longWays : " . diffTimeToMs("longWays", microtime(true)) . " s\n";
172}
173
174function randomData($count)
175{
176 startTime("longWays");
177 for ($i = 0; $i < $count; $i++) {
178 $data = array(
179 "name" => generateRandomString(10),
180 "address" => generateRandomString(10),
181 "type" => rand(0, 10),
182 "email" => generateRandomEmail(),
183 "deleted" => rand(0, 1)
184 );
185 $sql = "INSERT INTO dev_iut.test(name, address, type, email, deleted)
186 VALUES (\"" . addslashes($data["name"]) . "\", \""
187 . addslashes($data["address"]) . "\", \""
188 . $data["type"] . "\", \""
189 . $data["deleted"] . "\", \""
190 . addslashes($data["email"]) .
191 "\")";
192 }
193 echo "DATA_TYPE = ".json_encode(array(
194 "name" => generateRandomString(10),
195 "address" => generateRandomString(10),
196 "type" => rand(0, 10),
197 "email" => generateRandomEmail(),
198 "deleted" => rand(0, 1)
199 ));
200 echo $count . " randomData : " . diffTimeToMs("longWays", microtime(true)) . " s\n";
201}
202
203//longWays(1000);
204//byPacket(1000, 50);
205byFile(1000);
206randomData(10000);