l3tnun / EPGStation

Mirakurun を使用した録画管理ソフト
https://twitter.com/l3tnun
MIT License
547 stars 148 forks source link

MySQL connection through UNIX socket #693

Open fetburner opened 1 month ago

fetburner commented 1 month ago

Why

現在 EPGStation では MySQL や MariaDB を使う場合に TCP による接続方法しか指定することができませんが、docker-mirakurun-epgstation がそうであるように、EPGStation と DB は同じマシン上で走らせることが多いように思われます。 その様なユースケース、データベースとアプリケーションを同一のマシン上でホストする場合、TCP による接続よりも UNIX ドメインソケットによる接続の方が高速であることが知られています。 https://www.percona.com/blog/need-to-connect-to-a-local-mysql-server-use-unix-domain-socket/

概要(Summary)

MySQL または MariaDB を EPGStation の DB として使う場合に、TCP 接続のアドレスとポートを指定する代わりにUNIXドメインソケットのパス socketPath を指定することもできるようにします。 実装としては、EPGStation で使われている mysql パッケージではコネクション時に socketPath を指定すれば UNIX ドメインソケットによって接続を行うため、コンフィグの値をそちらに引き回しています。https://www.npmjs.com/package/mysql#connection-options

動作確認

MariaDB 10.5.25 により行いました。