SGBD à moyenne volumétrie : MySQL => SQL Server ?

SGBD à moyenne volumétrie : MySQL => SQL Server ? - SQL/NoSQL - Programmation

Marsh Posté le 14-01-2016 à 10:52:37    

Bonjour,
 
J'ai développé un script PHP chargé de récupérer une relativement grande quantité de données (pour un particulier) dans le cadre d'un projet scolaire. Ma moulinette tourne quotidiennement et enregistre dans une base MySQL entre 40 et 50K lignes x 150 colonnes (soit 600K à 750K données) chaque jour.
 
La base grossissant et comme je constate qu'elle commence à avoir un peu de mal vu la taille de la table, je me demande si ça ne vaudrait pas le coup de passer la base de données sur SQL Server, d'autant plus que j’ai une licence par mon école. Il me semble avoir vu que ce SGBD gérait mieux les volumétries de plus de plusieurs centaines de Mo.
 
Qu'en pensez vous ?

Reply

Marsh Posté le 14-01-2016 à 10:52:37   

Reply

Marsh Posté le 14-01-2016 à 11:09:59    

Pas forcément, ça dépend de la structure des données et du type de requêtes à exécuter.

 

Déjà une table à 150 colonnes ça n'est pas très recommandé comme modèle, ça stocke quoi ?
Qu'entend tu par "un peu de mal", sur quel type d'opérations ?

 

Ensuite il faut tenir compte de l'environnement d'hébergement : PHP + mySql en général c'est du LAMP, SQL Server c'est sous windows...


Message édité par TotalRecall le 14-01-2016 à 11:11:15

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 15-01-2016 à 12:05:43    

Avant de changer de SGBD, as-tu fais les choses suivantes :
1) le serveur a au moins 2 Go de Ram dispo pour Mysql ?
 
2) le serveur a un CPU d'au moins 2.5 GHz ?
 
3) le serveur est dédié à Apache/PHP/Mysql ?
 
4) as-tu tuné le fichier de conf de Mysql ? En particulier, augmenter la taille de certain caches ?
 
5) ta table est-elle correctement indexée ? Suivant la nature des traitements, certains indexes peuvent ralentir le traitement et au contraire, des indexes peuvent grandement l'accélérer. Il faut donc faire des tests.
 
6) tes requêtes utilisent-elles les bons indexes ? (vérifier avec la commande EXPLAIN)
 
7) 150 colonnes, a priori, c'est n'importe quoi comme structure. Ca ressemble fort à un fichier Excel transposé dans une BD, à plat, donc qui ne respecte pas la forme 3NF de Codd. Normaliser la BD pourrait sans doute aider. Après, là encore, une BD "trop" normalisée peut ralentir certains traitement à cause d'un grand nombre de jointures.
 
8) le partitionnement (fonction native de Mysql, dasn ton cas, un partitionnement sur une colonne contenant des dates, par ex) d'une grosse table peut accélérer les traitements.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-01-2016 à 15:23:46    

Passer à SQL Server ne t'apportera peut être rien de mieux à part un tas d'ennuis. Beaucoup de sociétés utilisent MySQL ou MariaDB et ce y compris pour de très fortes volumétries.
Comme précisé ci dessus il y à peut être des optimisations à faire coté SGBD, tu as pas mal de chose à voir dans la doc mysql, par exemple les différentes optimisations possibles et le fichier de configuration.  
Déjà tu essai de résoudre quel probleme au juste, les ajouts sont devenus trop lents, ou le probleme c'est pour récupérer les  infos ?

Reply

Marsh Posté le 15-01-2016 à 15:39:32    

9) vérifier si un moteur comme MyIsam ou MEMORY n'accélère pas les traitements (pas besoin d'InnoDB).
 
10) Je me suis laissé dire que MariaDB était un peu plus rapide que mysql...


Message édité par rufo le 15-01-2016 à 15:39:43

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-01-2016 à 15:56:45    

Myisam c'est généralement le plus rapide sur les transactions simples, donc le bon choix quand on à pas besoin des fonctions d'innodb. Logiquement sur les insertions de données Myisam est bien plus rapide que innodb, et en fait aussi plus rapide que SQL Server.


Message édité par Paul JR le 15-01-2016 à 15:57:18
Reply

Marsh Posté le 17-01-2016 à 14:39:33    

J'ai monté une base mysql qui fait actuellement 23 Go.
Pas de souci particulier, à part quelques requêtes que j'ai modifié et parfois des tables temporaires pour que ça soit plus rapide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed