|
1 | 1 | <?php
|
2 | 2 |
|
| 3 | +use App\Models\User; |
3 | 4 | use Illuminate\Http\Request;
|
4 | 5 | use Illuminate\Support\Facades\DB;
|
| 6 | +use Illuminate\Support\Facades\Log; |
5 | 7 | use Illuminate\Support\Facades\Route;
|
6 | 8 |
|
7 | 9 | /*
|
|
24 | 26 | });
|
25 | 27 |
|
26 | 28 | Route::get('/mssql', function () {
|
27 |
| - $results = DB::select('select * from users'); |
28 |
| - return $results; |
| 29 | + //get users from sqlsrv using eloquent |
| 30 | + $users = User::on('sqlsrv')->limit(11)->get(); |
| 31 | + return $users; |
29 | 32 | });
|
30 | 33 |
|
31 |
| -//test mssql connection |
32 |
| -Route::get('/mssql/sql', function () { |
33 |
| - $connection = DB::connection('sqlsrv'); |
34 |
| - $results = $connection->select("SELECT * FROM [dbo].[users]"); |
35 |
| - return $results; |
| 34 | +Route::get('/users/insert/{cxn?}', function ($cnx = 'mysql') { |
| 35 | + $name = fake()->name(); |
| 36 | + $email = fake()->unique()->safeEmail(); |
| 37 | + $email = preg_split('/@/', $email)[0]; |
| 38 | + $startDate = date('Y-m-d H:i:s'); |
| 39 | + foreach (range(1, 100000) as $index) { |
| 40 | + $user = new User(); |
| 41 | + $user->name = $name; |
| 42 | + $user->email = $email . $index . '@gmail.com'; |
| 43 | + $user->password = 'test123'; |
| 44 | + $user->setConnection($cnx); |
| 45 | + $user->save(); |
| 46 | + $index++; |
| 47 | + } |
| 48 | + $endDate = date('Y-m-d H:i:s'); |
| 49 | + $time = strtotime($endDate) - strtotime($startDate); |
| 50 | + $message = 'Time to insert 100000 users: ' . $time . ' seconds' . ' using ' . $cnx . ' connection'; |
| 51 | + Log::info($message); |
| 52 | + return $message; |
| 53 | +}); |
| 54 | + |
| 55 | +Route::get('/users/bulk-insert/{cxn?}', function ($cnx = 'mysql') { |
| 56 | + $name = fake()->name(); |
| 57 | + $email = fake()->unique()->safeEmail(); |
| 58 | + $email = preg_split('/@/', $email)[0]; |
| 59 | + $startDate = date('Y-m-d H:i:s'); |
| 60 | + $users = []; |
| 61 | + foreach (range(1, 10000) as $index) { |
| 62 | + $users[] = [ |
| 63 | + 'name' => $name, |
| 64 | + 'email' => $email . $index . '@gmail.com', |
| 65 | + 'password' => 'test123', |
| 66 | + ]; |
| 67 | + $index++; |
| 68 | + if ($index % 500 == 0) { |
| 69 | + // both works |
| 70 | + // DB::connection($cnx)->table('users')->insert($users); |
| 71 | + User::on($cnx)->insert($users); |
| 72 | + $users = []; |
| 73 | + } |
| 74 | + } |
| 75 | + $endDate = date('Y-m-d H:i:s'); |
| 76 | + $time = strtotime($endDate) - strtotime($startDate); |
| 77 | + $message = 'Time to bulk insert 1000000 users: ' . $time . ' seconds'; |
| 78 | + return $message; |
| 79 | +}); |
| 80 | + |
| 81 | + |
| 82 | +Route::get('/users/{cxn?}', function ($cnx = 'mysql') { |
| 83 | + $users = User::on($cnx)->limit(11)->get(); |
| 84 | + return $users; |
36 | 85 | });
|
0 commit comments