いざという時のためにMySQLiの「非同期クエリ」を使いこなしておく by きんじょうひでき

PHP Conference Japan 2020
Regular session (25 mins)

いざという時のためにMySQLiの「非同期クエリ」を使いこなしておく

o0h_ きんじょうひでき o0h_
2

「重い処理を早くしたい」といえば、処理の非同期化です。
「PHPで非同期」というと、「Swooleだ」「pcntlを使って」といった声が聞こえて来そうです。
あるいは、(HTTP)リクエストについてならば、「guzzleのasyncで」「curl_multiで」と耳にします。

さて、「MySQL 改良版拡張モジュール MySQLi」を皆さんは活用できていますか?
昨今の一般的なPHP環境であれば、こいつを使えば「重いSQL処理をMySQLにパラレルで投げておく」が可能になるわけです!!

本セッションでは、今一度、改めて「MySQLiを使って非同期処理を行うには」という方法について学んでみたいと思います。
(そんなに高度ではない内容です)

想定する聴講者

  • あんまり mysqli::pollmysqli::reap_async_query という文字列にピンとこない方
  • 「何が何でもレイテンシを下げたいんだ、しかし必要なSELECTが多すぎて・・・」と悩んだ事がある方

おしながき(仮)

  • PHPで書いたコードでの「非同期処理」の制御の仕方
  • 「MYSQLI_ASYNC」モードを指定した時の動作
  • 実用性のあるコードで利用可能にする