CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Base de donnée rapide

sooOkse
sooOkse
Niveau 8
23 juillet 2017 à 10:32:51

Pour faire des recherches de tags ou/et categorie sur des videos (ou articles ou n'importe quoi), quel serait la meilleure base de donnée et le schema pour la rapidité des selects ? De la recherche quoi.

J'ai tenter avec innodb et mysql mais ca ne va pas assez vite (2,3,4 secondes parfois moins parfois un peu plus).

MongoDb avec nosql serait peut etre mieux ?

J'aimerai des avis de ceux qui ont deja fais quelquechose du genre.

Merci d'avance.

sooOkse
sooOkse
Niveau 8
23 juillet 2017 à 13:19:43

Non pas tenté. Mais de toute facon je commence a voir (et a lire sur le web) que le relationnel ne "scale" pas.

darkdark
darkdark
Niveau 9
23 juillet 2017 à 16:14:47

Ça dépend aussi de la grosseur de tes BD. Sur combien d'entrées tu fais tes selects ?

godrik
godrik
Niveau 30
23 juillet 2017 à 16:29:41

Le relationel ne scale pas. Mais tres peu d'appliccation ont besoin de l'echelle ou le relationel ne scale plus.

Je connais des tonnes de gens qui sont parti aur du nosql pour que ca scale et qui ont ete emmerde comme pas possible a implementer leur probleme pour qu'il y ai un peu de coherence et d'optimisation. Alors qu'une implem sur une base relationelle aurait parfaitement suffit.

sooOkse
sooOkse
Niveau 8
23 juillet 2017 à 17:13:57

Le 23 juillet 2017 à 16:14:47 darkdark a écrit :
Ça dépend aussi de la grosseur de tes BD. Sur combien d'entrées tu fais tes selects ?

Un des selects est sur 20 millions de records. Je sais que ce que j'ai n'est pas énorme mais les plusieurs differentes facons de chercher menent a rien, c'est toujours un peu trop lent.

Le 23 juillet 2017 à 16:29:41 Godrik a écrit :
Le relationel ne scale pas. Mais tres peu d'appliccation ont besoin de l'echelle ou le relationel ne scale plus.

Je connais des tonnes de gens qui sont parti aur du nosql pour que ca scale et qui ont ete emmerde comme pas possible a implementer leur probleme pour qu'il y ai un peu de coherence et d'optimisation. Alors qu'une implem sur une base relationelle aurait parfaitement suffit.

Je suis en train de regarder pour mongodb et certaines des syntaxes m'ont l'air bien plus simple a faire (recherche tags multiples AND ou OR, recherche sans un certain tags ... ).
Apres je doute pas que l'implementation doit surement etre plus dur mais si la vitesse des recherches et plus grandes je suis pret a passer le temps qu'il faux.

WatchItBurn
WatchItBurn
Niveau 10
23 juillet 2017 à 19:15:15

Honnêtement y a de fortes chances que le problème vienne de ta structure de base plutôt que de la bdd utilisée. Tu as essayé de triturer des index ou de créer des tables "cache" ? Après effectivement on est pas tous DBA donc clairement à un moment faut voir d'autres solutions.
Changer radicalement de base pour moi c'est la solution foireuse, tu vas tout réécrire pour corriger UN problème et en choper 50.000 autres.
Le quick win ce serait de rajouter un système de cache en frontend de ta base de données, un Redis qui stockerait tes tags/catégories par exemple. Soit tu le remplis en précalculé, soit tu le remplis à la volée selon les requêtes reçues.

ouimaisquoi
ouimaisquoi
Niveau 8
23 juillet 2017 à 20:35:32

En quoi les trois secondes sont gênantes ?

whiteapplex
whiteapplex
Niveau 21
23 juillet 2017 à 23:05:39

Le 23 juillet 2017 à 17:13:57 sooOkse a écrit :

Le 23 juillet 2017 à 16:14:47 darkdark a écrit :
Ça dépend aussi de la grosseur de tes BD. Sur combien d'entrées tu fais tes selects ?

Un des selects est sur 20 millions de records. Je sais que ce que j'ai n'est pas énorme mais les plusieurs differentes facons de chercher menent a rien, c'est toujours un peu trop lent.

Le 23 juillet 2017 à 16:29:41 Godrik a écrit :
Le relationel ne scale pas. Mais tres peu d'appliccation ont besoin de l'echelle ou le relationel ne scale plus.

Je connais des tonnes de gens qui sont parti aur du nosql pour que ca scale et qui ont ete emmerde comme pas possible a implementer leur probleme pour qu'il y ai un peu de coherence et d'optimisation. Alors qu'une implem sur une base relationelle aurait parfaitement suffit.

Je suis en train de regarder pour mongodb et certaines des syntaxes m'ont l'air bien plus simple a faire (recherche tags multiples AND ou OR, recherche sans un certain tags ... ).
Apres je doute pas que l'implementation doit surement etre plus dur mais si la vitesse des recherches et plus grandes je suis pret a passer le temps qu'il faux.

3secondes sur 20 millions de record, tu attends quelles performances en fait ?

godrik
godrik
Niveau 30
24 juillet 2017 à 03:32:30

En plus, mysql n'est pas connu pour avoir des perf moisies? C'etait comme ca il y a une dizaine d'annee; Les gens preferaient postgresql pour avoir des perfs a l'epoque. Il faudrait aussi voir si la table est stocke par ligne ou bien. Si tu as toutes les meta-donnees des videos stocke par ligne, tu as une chance que l table ne tienne pas dans le cache en RAM. Alors que si la base stockent a part cles et cles externes, et les autres donnees a cote, alors 20M de ligne ca devrait tenir en memoire tranquille.

dark_drow
dark_drow
Niveau 15
24 juillet 2017 à 10:40:52

Je suis en train de regarder pour mongodb et certaines des syntaxes m'ont l'air bien plus simple a faire (recherche tags multiples AND ou OR, recherche sans un certain tags ... ).

Simple possible, performant c'est pas sûr.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment