Très grandes données dans une table mysql. Même les instructions select prendre beaucoup de temps

Je suis en train de travailler sur une base de données, et c'est une assez grande avec 1,3 milliard de lignes et autour de 35 colonnes. Voici ce que j'obtiens après vérification de l'état de la table:

Name:Table Name
Engine:InnoDB
Version:10
Row_format:Compact
Rows:12853961
Avg_row_length:572
Data_length:7353663488
Max_data_length:0
Index_length:5877268480
Data_free:0
Auto_increment:12933138
Create_time:41271.0312615741
Update_time:NULL
Check_time:NULL
Collation:utf8_general_ci
Checksum:NULL
Create_options:
Comment:InnoDB free: 11489280 kB

Le Problème, je suis confronté à que même une seule requête select prend trop de temps pour traiter par exemple une requête Select * from Table_Name limit 0,50000 prend autour de 2,48 minutes
Qui est attendu?

Je dois faire un rapport dans lequel je dois utiliser l'ensemble des données historiques, c'est l'ensemble de 1,3 milliards de lignes. Je pouvais faire ce lot par lot, mais alors que j'aurais à exécuter des requêtes qui prennent trop de temps à plusieurs reprises, encore et encore.

Lorsque la requête simple est de prendre autant de temps que je ne suis pas capable de faire n'importe quelle autre requête complexe qui doit le rejoint et l'affaire états.

peut-on prendre un coup d'oeil de votre base de données de schéma? exécuter DESC Table\ Name
Ajouter des index dans votre Tableau, utilisez l'Index de la Colonne dans la clause where.
Ne pas utiliser * pour la sélection, extraire uniquement les colonnes souhaitées.
je ne suis pas sûr de la configuration de mysql, mais pour avoir plus rapidement les requêtes sql exécuter le plan d'expliquer - voir où le coût et la mémoire sont. le poster ici et nous vous ferons savoir comment faire des requêtes sql plus vite
Essayez la gamme de partitionnement sur votre table. n'affecte pas vos données. peut améliorer votre performance

OriginalL'auteur Rahul Agarwal | 2012-12-28