web-dev-qa-db-fra.com

Quelle est la différence entre MySQL et MySQL2 en considérant NodeJS

J'ai donc lu le post suivant "

Quelle est la différence entre mysql et mysql2 gem

Jusqu'à présent, je n'ai utilisé que MongoDB avec NodeJS et je veux pouvoir apprendre MySQL pour tous mes besoins de base de données relationnelles. Lors de mes recherches sur MySQL et NodeJS, j'ai trouvé des référentiels pour MySQL2 et il ne semble rien avoir en relation avec le site Web MySQL, je suppose qu'il y a eu des API créées qui permettent un développement plus rapide avec des langages comme NodeJS et Ruby. D'un point de vue NodeJS, je suppose que j'exécute toujours la base de données MySQL régulière sur mon serveur, mais je dois interagir avec elle en utilisant ces nouvelles API comme:

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

J'ai également vu un site où ils font des tests de performances et NodeJS & MySQL sont très faibles pour les performances. et NodeJS & MySQL2 très élevé

Source pour cette info: php-nodejs-mysql-and-mongo

Image de ce post:

enter image description here

Question: Est-ce que j'utilise simplement la base de données MySQL régulière sur mon serveur et utilise cette API mysql2 ou existe-t-il une implémentation différente de MySQL qui fonctionne avec cette API?

Je n'ai pas utilisé MySQL depuis environ 10 ans. Je n'ai utilisé que SQL Server de Microsoft. Je suis donc gravement en retard. J'ai commencé à utiliser NodeJS et je me suis dit que mes meilleures options de base de données relationnelles étaient MySQL. Y a-t-il autre chose que je devrais rechercher?

25
Eric Bishard

Ce ne sont que 2 API différentes écrites par des gens ordinaires. La différence réside dans la syntaxe des commandes et peut-être dans les performances, installez simplement les deux, faites vos propres tests pour vos objectifs et choisissez celui que vous pensez être le plus approprié pour vous.

Voici un comparaison par NPMCompare :

18
monkeyinsight

Extrait de https://www.npmjs.com/package/mysql2

"MySQL2 est principalement compatible API avec mysqljs et prend en charge la majorité des fonctionnalités. MySQL2 propose également ces fonctionnalités supplémentaires

  • Performances plus rapides/meilleures
  • Déclarations préparées
  • Protocole de journal binaire MySQL
  • Serveur MySQL
  • Prise en charge étendue de l'encodage et du classement
  • Promise Wrapper
  • Compression
  • SSL et commutateur d'authentification
  • Flux personnalisés
  • Mise en commun"

Seulement pour les deux premières fonctionnalités, c'est mieux: plus rapide et sécurisé

9

Si vous regardez le code source utilisé pour mysql et mysql2 dans le graphique, il utilise l'api mysql pour les deux. La seule différence est que celui étiqueté mysql ferme la connexion à chaque fois. Le point à retenir est donc de ne pas fermer la connexion à chaque fois. L'API mysql2 est censée être plus rapide, mais je n'ai vu aucune donnée pour cela.

Il y a le code "mysql2" qui a été utilisé pour les données du graphique. Notez que l'API est toujours mysql et non mysql2:

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