web-dev-qa-db-ja.com

NodeJSを考慮したMySQLとMySQL2の違いは何ですか

だから私は次の投稿を読んだ」

mysqlとmysql2 gemの違い

これまでは、NodeJSでMongoDBのみを使用しており、リレーショナルデータベースのニーズに合わせてMySQLを学習できるようにしたいと考えています。 MySQLとNodeJSを調査していると、MySQL2のリポジトリが見つかりましたが、MySQLのWebサイトとは関係がないようですが、NodeJSやRubyなどの言語での開発を高速化するAPIが作成されていると想定しています。 NodeJSの観点からは、サーバーで通常のMySQLデータベースを引き続き実行していると想定していますが、次のような新しいAPIを使用してデータベースと対話する必要があります。

https://github.com/sidorares/node-mysql2/blob/master/README.md

また、パフォーマンスベンチマークを実行し、NodeJSとMySQLのパフォーマンスが非常に低くなるサイトも見ました。そしてNodeJSとMySQL2は非常に高い

この情報のソース: php-nodejs-mysql-and-mongo

この投稿の画像:

enter image description here

質問:サーバーで通常のMySQLデータベースを使用してこのmysql2 APIを使用するのですか、それともこのAPIで動作するMySQLの別の実装がありますか?

MySQLを約10年間使用していません。私はMicrosoftのSQL Serverのみを使用しています。だから私はひどく遅れています。私はNodeJSの使用を開始し、私の最良のリレーショナルデータベースオプションはMySQLであると考えました。他に確認する必要があるものはありますか?

25
Eric Bishard

これは、一般の人々が作成した2つの異なるAPIです。違いは、コマンドの構文と、おそらくパフォーマンスの違いです。両方をインストールし、目的に合った独自のテストを行い、自分に適したものを選択してください。

これが NPMCompareによる比較 です。

18
monkeyinsight

https://www.npmjs.com/package/mysql2 から抽出

「MySQL2はほとんどがmysqljsとAPI互換であり、ほとんどの機能をサポートしています。MySQL2はこれらの追加機能も提供しています

  • より速く/より良いパフォーマンス
  • 準備されたステートメント
  • MySQLバイナリログプロトコル
  • MySQLサーバー
  • エンコーディングと照合の拡張サポート
  • プロミスラッパー
  • 圧縮
  • SSLおよび認証スイッチ
  • カスタムストリーム
  • プーリング」

最初の2つの機能のみが優れています:高速で安全

グラフでmysqlとmysql2に使用されているソースコードを見ると、彼は両方にmysql apiを使用しています。唯一の違いは、mysqlというラベルの付いたものは毎回接続を閉じているということです。つまり、毎回接続を閉じないことが重要です。 mysql2 apiはより高速であるはずですが、そのためのデータは確認していません。

グラフデータに使用された「mysql2」コードがあります。 APIはまだmysql2ではなくmysqlであることに注意してください。

var sys = require('sys'),
http = require('http'),
mysql = require('mysql')
client = null;

client = mysql.createClient({
          user: 'root',
          password: '',
});
client.query('USE mongo');

http.createServer(function(req, res) {
        client.query(
                  'SELECT * FROM basic WHERE id = '+Math.floor(Math.random()*100000),
                  function selectCb(err, results, fields) {
                    if (err) {
                      res.writeHead(200, {'Content-Type': 'text/html'});
                          res.write('Bad');
                          res.end();
                      throw err;
                    }

                    res.writeHead(200, {'Content-Type': 'text/html'});
                        res.write('Gooood');
                        res.end();
                  }
                );
}).listen(8080);
2
Eric Moore