2016-04-07 4 views
2

Ich habe 4 große Tabelle und ich versuche SQL-Abfrage darauf auszuführen. Die Abfrage nimmt viel Zeit zur Ausführung, ich möchte die Ausführungszeit für eine bessere Leistung zu reduzieren, und ich habe damit zu kämpfen, also brauche ich Hilfemysql, innodb Einstellungen für eine schnellere Ausführung der Abfrage

Ich benutze MySQL 5.7.8 in Linux OS, 12 GB RAM

* Dies ist my.cnf Config * my.cnf

[mysqld]  
innodb_buffer_pool_size=10G  
innodb_log_buffer_size=2G  
innodb_buffer_pool_instances=16  
innodb_thread_concurrency=0  
innodb_flush_log_at_trx_commit=0  
sync_binlog=0  
innodb_flush_method=O_DIRECT  
skip_name_resolve  
innodb_io_capacity=1000  
innodb_io_capacity_max=3000  
innodb_buffer_pool_dump_at_shutdown=ON  
innodb_buffer_pool_load_at_startup=ON  
query_cache_type = 1  
query_cache_size = 256M  
innodb_read_io_threads=8  
innodb_write_io_threads=4 
+0

Wie viele CPU-Kerne haben Sie? Geben Sie die Ergebnisse für die Abfrage 'SHOW STATUS' an, diese Abfrage gibt Informationen zum Serverstatus zurück. –

+0

Versuchen Sie, die Abfragen zu optimieren, bevor Sie den Server optimieren. Es gibt keine magische Konfiguration, jede my.cnf hängt von den Besonderheiten der Serverlast, Abfragen, gleichzeitigen Benutzern, usw. ab. – PerroVerd

+0

@Max P Statusdatei anzeigen Link https://www.dropbox.com/s/6dyjhlztt7jprh6/ show_status? dl = 0 – PRECISION

Antwort

0

Nichts falsch mit dem Status vars, sehr niedrige Aktivität.
Versuchen Sie, den zusammengesetzten Index (isCancel, User) hinzuzufügen.
Wenn die Abfrage langsam bleibt, löschen Sie diesen Index und versuchen Sie, einen neuen (isCancel, User, Quarter, Year, ClaimType, Units, Amount) hinzuzufügen, der es ermöglicht, alle Daten aus dem Index für diese Abfrage abzurufen.