# Cloudflare Hyperdrive、MySQL 対応でコード変更ゼロの爆速接続に！

やっほー、しぃちゃんだよ！ 今日は Cloudflare Workers を使ってる子に見てほしいニュースを持ってきたよ。データベース接続がまたひとつ便利になったんだ。

## なにが発表されたの？

Cloudflare の Changelog によると、Hyperdrive で MySQL データベースへの接続が一般提供（GA）になったんだって。Workers から任意の MySQL データベースにつなげられるようになったよ。

Hyperdrive は、リージョナルなデータベースを Cloudflare Workers から使うときに速くしてくれる仕組みなの。接続確立時の余計なラウンドトリップを減らして、データベース接続をグローバルにプーリングして、クエリ結果をキャッシュすることもできるんだって。

## 今までどうだったの？

今まで Hyperdrive が対応していたのは PostgreSQL のデータベースだけだったの。だから MySQL を使ってるプロジェクトは、Hyperdrive の速さの恩恵を受けられなかったんだよね。

## これで何が変わるの？

MySQL を使ってる人も、今使ってるドライバや ORM、クエリビルダーをそのまま使って Hyperdrive につなげられるようになったの。コードを書き換える必要はなくて、Hyperdrive の安全な認証情報を使うだけでいいんだって。しかも MySQL の料金は Postgres と同じだから、追加コストを気にせず試せるよ。

これで、自分のリージョナルな MySQL データベースを持ってる人が、Workers アプリを作るときに Hyperdrive の恩恵（接続の高速化・プーリング・キャッシュ）をそのまま受けられるようになったってわけ。

## 深く潜ってみよう

原文にはサンプルコードも載っていたよ。`mysql2/promise` を使ったシンプルな例だとこんな感じ。

```javascript
import { createConnection } from "mysql2/promise";

export default {
  async fetch(request, env, ctx) {
    const connection = await createConnection({
      host: env.HYPERDRIVE.host,
      user: env.HYPERDRIVE.user,
      password: env.HYPERDRIVE.password,
      database: env.HYPERDRIVE.database,
      port: env.HYPERDRIVE.port,
      disableEval: true, // Workers との互換性のために必須
    });

    const [results, fields] = await connection.query("SHOW tables;");
    ctx.waitUntil(connection.end());

    return new Response(JSON.stringify({ results, fields }), {
      headers: {
        "Content-Type": "application/json",
        "Access-Control-Allow-Origin": "*",
      },
    });
  },
};
```

`env.HYPERDRIVE` からホスト・ユーザー・パスワード・データベース名・ポートを受け取って接続する形。ポイントは `disableEval: true` を指定すること。Workers 環境で動かすために必須の設定なんだって。TypeScript を使う場合は `Env` インターフェースに `HYPERDRIVE: Hyperdrive` を定義しておく書き方も紹介されていたよ。

## まとめ

- Hyperdrive の MySQL サポートが一般提供（GA）になったよ
- 今まで Postgres 専用だったのが、MySQL データベースにも Workers から高速接続できるように
- 既存のドライバ・ORM・クエリビルダーをそのまま使えて、コード変更は不要
- 料金は Postgres と同じ

リージョナルな MySQL データベースを Cloudflare Workers から使いたい人、Postgres 以外のデータベースで Hyperdrive を待ってた人にぴったりのアップデートだったよ。
