Maison > Questions et réponses > le corps du texte
目前网站的数据库是MYSQL,里面存储了很多歌曲信息记录。
我在想如果把歌曲查询部分做成从MongoDB里查询,速度是不是会快一些?
以后对歌曲信息的增删写的时候,同时要跟MongoDB同步一下,是这样吧?没有NOSQL的经验,请各位指点下,谢谢。
给我你的怀抱2017-05-02 09:27:47
De nombreux problèmes n’ont pas qu’une seule solution, ce qui signifie que vous pouvez utiliser telle ou telle technique. Le but de l'apprentissage peut être celui que vous souhaitez, mais dans un environnement de production réel, il est fortement recommandé de simplifier votre complexité et de résoudre les problèmes de la manière la plus simple qui vous soit la plus familière. Demandez-vous s’il est vraiment nécessaire d’utiliser 2 bases de données pour résoudre le même problème.
Je me demandais si ce serait plus rapide si la partie requête de chanson était interrogée depuis MongoDB ?
Peut-être, peut-être pas. Cela dépend de la quantité de données dont vous disposez, du caractère raisonnable de la conception du modèle de données utilisant MongoDB et... de la quantité de ressources matérielles que vous envisagez d'y investir. NoSQL se concentre davantage sur l'expansion horizontale, ce qui signifie qu'il peut toujours maintenir la vitesse des requêtes à un certain niveau même si la quantité de données continue d'augmenter. D'après mon expérience personnelle, s'il y a des dizaines ou des centaines de millions de données, MongoDB peut vraiment montrer ses avantages. Avant que les données n'atteignent ce niveau, je ne pense pas qu'il soit vraiment nécessaire d'introduire une base de données supplémentaire si c'est uniquement pour des raisons de rapidité. Par rapport aux avantages que cela vous apporte et à la complexité que cela entraîne, on peut seulement dire que ce n'est pas rentable.
Lorsque vous ajouterez ou supprimerez des informations sur une chanson à l'avenir, vous devrez les synchroniser avec MongoDB en même temps, n'est-ce pas ?
Le problème de la synchronisation des données dépend du niveau de vos exigences en matière de « cohérence ». Dans le cas d'une forte cohérence, il s'agit d'une transaction distribuée, ce qui n'est probablement pas une bonne chose pour les performances et va à l'encontre de votre intention initiale d'accélérer la transaction. Si vous envisagez une cohérence éventuelle, vous pouvez consulter divers outils ETL MySQL vers MongoDB, tels que Pentaho. Bien sûr, il est possible de l'implémenter vous-même via le code, mais il n'est pas facile de considérer divers problèmes de tolérance aux pannes.
世界只因有你2017-05-02 09:27:47
Tout d'abord, vous devez savoir clairement que MongoDB est une implémentation spécifique de NoSQL Contrairement à Redis, la structure de données qu'il stocke est basée sur des documents.
Deuxièmement, la vitesse des requêtes est difficile à prendre des décisions arbitraires basées sur les différences entre les produits ou les moteurs. De plus, les informations stockées et la manière de les stocker nécessitent également une analyse (si. vous vous entraînez simplement, le processus peut être plus simple).
Je n'ai appris MySQL auparavant qu'en raison de l'incertitude ou de la complexité de la structure de certaines données stockées, si je veux utiliser MySQL seul pour les stocker, je dois utiliser de nombreuses tables et configurer des clés étrangères, j'ai donc aussi appris. MongoDB pour répondre aux besoins.
Ce que je fais est une pratique littéraire, qui s'apparente un peu aux chansons d'un certain point de vue. Par exemple, il peut y avoir plusieurs auteurs d'un livre. Si vous utilisez MySQL, la méthode simple consiste à utiliser des délimiteurs pour stocker plusieurs auteurs dans un seul champ. Il y aura certains problèmes dans les requêtes ultérieures (complexité des conditions de jugement et même des performances). ), et une chanson A peut également avoir plus d'un chanteur.
Ma pratique est MySQL + MongoDB Bien sûr, cela peut aussi être réalisé en utilisant uniquement MongoDB, mais je pense que les besoins spécifiques doivent être analysés en conséquence. Ma pratique globale est toujours en cours, et je peux communiquer à tout moment, une des idées proposées ci-dessus.
世界只因有你2017-05-02 09:27:47
Elasticsearch exécute les requêtes plus rapidement sans affecter les performances de MySQL
世界只因有你2017-05-02 09:27:47
Je suppose que vous aurez peut-être besoin de fonctions telles que la recherche de chansons basées sur les paroles. L'Elasticsearch mentionné ci-dessus est très bon, et il existe également sphinx, qui est également très bon pour la recherche en texte intégral.