Quelle est la taille peut une base de données MySQL obtenir avant la performance commence à se dégrader

voix
253

À quel point une base de données MySQL commence à perdre la performance?

  • Est-ce que la taille de la base de données physique important?
  • Ne nombre de dossiers d'importance?
  • Quelqu'un est-il linéaire de dégradation des performances ou exponentielle?

J'ai ce que je crois être une base de données importante, avec environ 15M dossiers qui prennent presque 2 Go. Sur la base de ces chiffres, est-il incitatif pour moi de nettoyer les données sur ou suis-je sûr de lui permettre de continuer à intensifier pendant quelques années?

Créé 04/08/2008 à 15:31
source utilisateur
Dans d'autres langues...                            


13 réponses

voix
169

La taille de la base de données physique n'a pas d'importance. Le nombre d'enregistrements ne pas d'importance.

Dans mon expérience, le plus gros problème que vous allez courir pour n'est pas la taille, mais le nombre de requêtes que vous pouvez gérer à la fois. Très probablement, vous allez devoir passer à une configuration maître / esclave afin que les requêtes de lecture peuvent courir contre les esclaves et les requêtes d'écriture dirigées contre le maître. Toutefois, si vous n'êtes pas prêt pour cela encore, vous pouvez toujours peaufiner vos index pour les requêtes que vous utilisez pour accélérer les temps de réponse. De plus, il y a beaucoup de peaufinage que vous pouvez faire à la pile réseau et le noyau Linux qui vous aideront.

J'ai eu la mienne obtenir jusqu'à 10 Go, avec seulement un nombre modéré de connexions et les demandes traitées très bien.

Je me concentrerais d'abord sur vos index, alors un serveur d'administration à regarder votre système d'exploitation, et si tout cela ne l'aide pas peut-être temps de mettre en œuvre une configuration maître / esclave.

Créé 04/08/2008 à 16:26
source utilisateur

voix
71

En général , c'est une question très subtile et non trivial que ce soit. Je vous encourage à lire mysqlperformanceblog.com et MySQL haute performance . Je pense vraiment qu'il n'y a pas de réponse générale à cette fin .

Je travaille sur un projet qui a une base de données MySQL avec presque 1 To de données. Le facteur le plus important est l'évolutivité RAM. Si les index de vos tables en mémoire et correspondent à vos requêtes sont très optimisées, vous pouvez servir une quantité raisonnable de demandes avec une machine moyenne.

Le nombre d'enregistrements n'importe, selon la façon dont vos tables ressemblent. Il est une différence d'avoir beaucoup de champs varchar ou seulement deux ints ou désire ardemment.

La taille physique des matières de base de données ainsi: penser des sauvegardes, par exemple. En fonction de votre moteur, vos fichiers db physiques sur grandir, mais ne rétrécit pas, par exemple avec InnoDB. Ainsi, la suppression d'un grand nombre de lignes, ne contribue pas à réduire vos fichiers physiques.

Il y a beaucoup à ces questions et comme dans beaucoup de cas, le diable est dans les détails.

Créé 04/08/2008 à 19:44
source utilisateur

voix
33

La taille de la base de données est importante . Si vous avez plus d'une table avec plus d'un million de disques, alors la performance commence en effet à se dégrader. Le nombre d'enregistrements a bien sûr une incidence sur la performance: MySQL peut être lent avec de grandes tables . Si vous frappez un million d' enregistrements que vous obtiendrez des problèmes de performance si les indices ne sont pas définis à droite (par exemple aucun indice pour les champs dans les « déclarations où » ou « sur les conditions » dans les jointures). Si vous touchez 10 millions de disques, vous commencerez à avoir des problèmes de performance , même si vous avez tous vos indices droit. Mises à niveau matérielles - ajouter plus de mémoire et plus de puissance du processeur, en particulier la mémoire - aident souvent à réduire les problèmes les plus graves en augmentant à nouveau la performance, au moins dans une certaine mesure. Par exemple37 signaux sont passés de 32 GB RAM 128 Go de RAM pour le serveur de base de données Basecamp.

Créé 26/01/2012 à 11:33
source utilisateur

voix
20

Je me concentrerais d'abord sur vos index, que d'avoir un serveur d'administration à regarder votre système d'exploitation, et si tout cela ne l'aide pas peut-être temps pour une configuration maître / esclave.

C'est vrai. Une autre chose qui fonctionne habituellement est de simplement réduire la quantité de données qui à plusieurs reprises ont travaillé avec. Si vous avez « anciennes données » et « nouvelles données » et 99% de vos requêtes travailler avec de nouvelles données, il suffit de déplacer toutes les anciennes données à une autre table - et ne regardez pas;)

-> Jetez un oeil à la séparation .

Créé 11/08/2008 à 20:19
source utilisateur

voix
19

2 Go et environ 15M dossiers est une base de données très petite - j'ai couru les beaucoup plus grands sur un pentium III et tout a toujours courir assez vite .. Si le vôtre est lent, il est une base de données / application problème de conception, pas mysql (!) un.

Créé 05/08/2010 à 10:03
source utilisateur

voix
16

Il est un peu vain de parler de « les performances des requêtes » « la performance de base de données », est un meilleur terme ici. Et la réponse est: cela dépend de la requête, les données qu'il fonctionne sur, les index, le matériel, etc. Vous pouvez avoir une idée de combien de lignes vont être numérisées et les index vont être utilisés avec EXPLAIN.

2 Go ne compte pas vraiment comme une base de données « grand » - il est plus d'une taille moyenne.

Créé 06/08/2008 à 20:53
source utilisateur

voix
9

Un point à considérer est également le but du système et les données du jour au jour.

Par exemple, pour un système avec un suivi GPS des voitures ne sont pas des données de requêtes pertinentes à partir des positions de la voiture au cours des mois précédents.

Par conséquent, les données peuvent être transmises à d'autres tables historiques pour consultation possible et réduire les temps d'exécution du jour aux questions de jour.

Créé 06/12/2012 à 06:13
source utilisateur

voix
9

Une fois, je fus appelé à regarder un mysql qui avait « cessé de travailler ». J'ai découvert que les fichiers DB ont été résidant sur un classeur Network Appliance monté avec NFS2 et avec une taille maximale de fichier de 2 Go. Et bien sûr, la table qui avait cessé d'accepter des transactions était exactement 2 Go sur le disque. Mais en ce qui concerne la courbe de performance On me dit qu'il travaillait comme un champion jusqu'à jusqu'à ce qu'il ne fonctionne pas du tout! Cette expérience sert toujours pour moi comme un beau rappel qu'il ya toujours des dimensions sommes au-dessus et au-dessous celui que vous pensez naturellement.

Créé 06/08/2008 à 05:27
source utilisateur

voix
8

Soyez également vigilant pour les jointures complexes. la complexité des transactions peut être un facteur important, en plus du volume des transactions.

Refactorisation requêtes lourdes offre parfois un gain important de performances.

Créé 04/08/2008 à 20:01
source utilisateur

voix
4

Je gère actuellement une base de données MySQL sur l'infrastructure cloud d'Amazon qui a grandi à 160 Go. La performance des requêtes est très bien. Ce qui est devenu un cauchemar est des sauvegardes, des restaurations, en ajoutant des esclaves, ou toute autre chose qui traite de l'ensemble des données, ou même sur de grandes tables DDL. Obtenir une importation propre d'un fichier de vidage est devenu problématique. Afin de rendre le processus suffisamment stable pour automatiser, divers choix devaient être faits pour donner la priorité sur la stabilité des performances. Si nous avions jamais se remettre d'une catastrophe à l'aide d'une sauvegarde SQL, nous serions pendant des jours.

mise à l'échelle SQL Horizontalement est également assez douloureux, et dans la plupart des cas conduit à l'utiliser de façon que vous avez probablement pas l'intention lorsque vous avez choisi de mettre vos données dans SQL en premier lieu. Tessons, lisez des esclaves, multi-maître, et al, elles sont toutes des solutions vraiment merdiques qui ajoutent à la complexité tout ce que vous faites avec la DB, et non l'un d'entre eux permet de résoudre le problème; seulement il atténue d'une certaine façon. Je suggère fortement regardant déplacer certaines de vos données de MySQL (ou vraiment de SQL) lorsque vous commencez à l'approche d'un ensemble de données d'une taille où ce genre de choses deviennent un problème.

Créé 30/06/2017 à 16:25
source utilisateur

voix
4

Les performances peuvent se dégrader en quelques quelques milliers de lignes si la base de données n'a pas été conçu correctement.

Si vous avez des index appropriés, utiliser des moteurs appropriés (ne pas utiliser MyISAM où plusieurs DML sont attendus), le partitionnement d'utilisation, allouer de la mémoire correcte en fonction de l'utilisation et bien sûr avoir une bonne configuration du serveur, MySQL peut gérer les données même en téraoctets!

Il y a toujours des façons d'améliorer la performance de base de données.

Créé 19/09/2013 à 12:26
source utilisateur

voix
2

taille de base de données en termes DOES matière d'octets et le nombre de lignes de table. Vous remarquerez une énorme différence de performance entre une base de données légère et une remplie de blob. Une fois que ma demande est coincé parce que je mets des images binaires dans les champs au lieu de garder des images dans des fichiers sur le disque et mettre uniquement les noms de fichiers dans la base de données. Itérer un grand nombre de lignes d'autre part ne sont pas gratuitement.

Créé 05/06/2017 à 10:27
source utilisateur

voix
2

Cela dépend de votre requête et validation.

Par exemple, j'ai travaillé avec une table de 100 000 médicaments qui a une colonne nom générique où il a plus de 15 caractères pour chaque médicament dans ce tableau une requête .Je mis de comparer le nom générique de médicaments entre deux requêtes tables.The prend minutes à run.The même, si vous comparez les médicaments à l'aide de l'indice des médicaments, en utilisant une colonne d'identifiant (comme dit ci-dessus), il ne prend que quelques secondes.

Créé 29/11/2016 à 12:05
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more