Il n'y a pas une grande solution générale à la question « Quelle est la taille est trop grand » - ces préoccupations dépendent souvent de ce que vous faites avec vos données et ce vos considérations de performance sont.
Il existe des limites fondamentales sur les tailles de table. Vous ne pouvez pas avoir plus de 1000 colonnes. Vos enregistrements ne peuvent pas être plus grands que 8k chacun. Ces limites changent en fonction du moteur de base de données. (Ceux-ci sont pour InnoDB.)
Il semble que vous ayez fusionné plusieurs ensembles de données différents dans une table. Vous avez probablement des champs qui vous indiquent l'ensemble de données auquel appartient cet enregistrement, ainsi que certains champs de données et certaines informations d'horodatage. Ce n'est pas un enregistrement très large (sauf si vous consignez, disons, tous les paramètres d'entrée de chaque demande.) Votre problème principal sera avec sélectivité. L'indexation de cette table de manière significative sera un défi. Si vos champs communs peuvent être suffisamment sélectifs pour que vous puissiez les utiliser pour accéder aux disques que vous voulez sans consulter la table, ce sera un énorme plus. (Cf. scan de table)
Pour autant d'enregistrements par jour (en gros, deux par seconde toute la journée, et je présume que vous avez une période de pointe où c'est beaucoup plus élevé), vous voudrez aussi faire Assurez-vous que vous regardez spécifiquement les optimisations sur améliorant la vitesse d'insertion. En règle générale, plus d'index = insertions plus lentes. Si vous le pouvez, envisagez d'archiver entièrement les enregistrements périmés vers une autre table. Dans les lieux de travail précédents, nous avons utilisé une stratégie d'archivage du mois dernier, trois mois avant, six mois avant, chacun dans des tableaux distincts. Une autre idée consiste à supprimer les anciens enregistrements. De nombreux environnements n'ont tout simplement pas besoin d'informations au-delà d'une certaine date. Accrochez-vous aux registres d'enregistrement d'il y a trois mois est souvent trop cher.
Enfin, ne négligez pas le stockage physique de votre table. Plus vos enregistrements sont minces, moins les E/S physiques ont besoin de lire (ou d'insérer) un enregistrement. Vous pouvez stocker vos index sur un disque dur physique distinct. S'il y a beaucoup de données redondantes dans vos enregistrements, stocker la table compressée peut en fait être une augmentation de la vitesse. Si vous avez un peu d'argent à dépenser, considérez la valeur d'une bonne matrice RAID pour le striping de vos données. Donc, pour répondre à votre question de base: il y a beaucoup d'enregistrements, mais avec un oeil attentif sur l'accord, ce ne sera pas un problème.
Merci pour toutes ces informations. Donc, vous dites que 6 millions de tables ne devraient poser aucun problème si je m'occupe de tous les autres détails que vous avez mentionnés? – Nathan
Je dis que c'est gérable si vous faites attention à toutes ces choses. Il est peu probable que la performance soit vraiment bonne, mais ce sera suffisant. –