sql >> データベース >  >> RDS >> Mysql

Ruby、Rails:mysql2 gem、誰かがこのgemを使用していますか?安定していますか?

    mysql2 より現代的な交換を意味します 既存のmysqlの場合 しばらくの間古くなっている宝石。また、作者はもうサポートしていないと聞きました。代わりに、より多くのRuby実装と互換性があるため、純粋なRubyバージョンを使用することをお勧めします(ただし、多くの 遅い)。

    mysqlの最初の問題 gemは、Cで型キャストを行わないため、Ruby文字列を返し、適切なRuby型に変換する必要があります。純粋なルビーでそれを行うのは非常に遅く、そもそも存在する必要がなかったオブジェクトをヒープ上に作成します。そして、ご存知のように、RubyのGCは、速度が遅い主な理由です。したがって、それを避け、できるだけ純粋なCで多くのことを行うのが最善です。

    2つ目は、全体をブロックすることです。 接続中、クエリの送信中、応答の待機中、さらには接続を閉じているときのrubyVM。 mysqlplus 間違いなくこの問題に役立ちますが、私が知る限り、クエリを送信する場合に限ります。

    mysql2 APIを非常にシンプルに保ちながら、これらの問題を解決することを目的としています。 Eric Wong (Unicornの作者)は、ほぼすべてを非ブロッキングにしたり、RubyでGVLをリリースしたりする素晴らしいパッチをいくつか提供しています。 Mysql2::Result クラスはEnumerableを実装しているため、配列の使用方法を知っている場合は、その使用方法を知っています。

    現在、本番環境で使用している人はごくわずかですが、Twitter、WorkingPoint、UserVoiceでも評価されています。

    Yehudaとも話し合っています 出荷時のRails3の推奨/デフォルトについて。その手法と最適化の一部は、DataObjectsのdo_mysqlにも組み込まれる予定です。 ドライバーもすぐに。

    ActiveRecordドライバーは現時点ではかなり安定しているはずです。 gemをインストールし、database.ymlのアダプター名をmysql2に変更するだけです。 。

    使用に興味がある場合は、試してみてください。問題が見つかった場合は、すぐに修正をプッシュします;)



    1. UTF-8MySQLと文字セット

    2. Oracle Fast Recovery Area

    3. AlwaysOn可用性グループの構成-パート2

    4. AirflowmysqlからgcpDagエラー