ตัวอย่างนี้ เป็นการเขียน PHP ตามแบบของ Swoole เพื่อเชื่อมต่อฐานข้อมูล MySQL
จากวันก่อนที่ได้แนะนำ Swoole คืออะไร ไปมาดูต่อว่าถ้าเขียน PHP Swoole กับฐานข้อมูลจะดีอย่างไร
การเขียนแบบเดิมก็ยังใช้ได้นะครับแต่ ประสิทธิภาพจะด้อยกว่านี้
ถ้าเขียนแบบด้านล่างนี้ สามารถของรับ Concurrency ระดับ 10K requests สำหรับการอ่านข้อมูลจากฐานขั้อมูล MySQL ภายในแค่ 0.2 วินาที
$s = microtime(true);
Co\run(function() {
for ($c = 100; $c--;) {
go(function () {
$mysql = new Swoole\Coroutine\MySQL;
$mysql->connect([
'host' => '127.0.0.1',
'user' => 'root',
'password' => 'root',
'database' => 'test'
]);
$statement = $mysql->prepare('SELECT * FROM `user`');
for ($n = 100; $n--;) {
$result = $statement->execute();
assert(count($result) > 0);
}
});
}
});
echo 'use ' . (microtime(true) - $s) . ' s';
จากตัวอย่างแสดงให้เก็นว่าถ้าเราเขียน PHP เชื่อมต่อฐานข้อมูล ด้วย Swoole เองจะรองรับการการทำงานโหลดหนักๆ ได้สบาย เลยครับ
แนะนำให้ ดูบทความนี้ต่อ เขียน API ด้วย PHP อย่างไรให้รองรับ Load มากกว่า Node.js - Swoole คือคำตอบ