I batch inséré à la table innoDB mysql en continu, le ratio insert par seconde est ralentie. Certains comportements sont - Si l'application d'insertion de données shutdown (java) est arrêtée, mysql effectue une opération d'E/S pendant un certain temps. - Ajouter un peu insérer puis arrêter le serveur mysql, la durée de l'opération d'arrêt est trop longue. Si démarrer et arrêter mysql sans aucune insertion, démarrer et arrêter l'opération si vite. - La vitesse d'insertion n'est pas (beaucoup) dépendante de la quantité de données sur la table. Si redémarrez le serveur mysql, l'insertion par seconde est similaire à la dernière insertion par seconde.InnoDB insérer compte ralentir
J'ai lu un commentaire sur le forum, ne pas ajouter continuellement, avoir un écart entre 2 insertions. Est-ce significatif? Pourquoi sql ralentit?
requête SHOW VARIABLES LIKE 'inno%' résultat est inférieur
innodb_adaptive_flushing = ON
innodb_adaptive_hash_index = ON
innodb_additional_mem_pool_size = 20971520
innodb_autoextend_increment = 8
innodb_autoinc_lock_mode = 1
innodb_buffer_pool_instances = 1
innodb_buffer_pool_size = 268435456
innodb_change_buffering = all
innodb_checksums = ON
innodb_commit_concurrency = 0
innodb_concurrency_tickets = 500
innodb_data_file_path = ibdata1:50M:autoextend
innodb_data_home_dir =
innodb_doublewrite = ON
innodb_fast_shutdown = 1
innodb_file_format = Barracuda
innodb_file_format_check = ON
innodb_file_format_max = Antelope
innodb_file_per_table = ON
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DSYNC
innodb_force_recovery = 0
innodb_io_capacity = 200
innodb_lock_wait_timeout = 50
innodb_locks_unsafe_for_binlog = OFF
innodb_log_buffer_size = 8388608
innodb_log_file_size = 268435456
innodb_log_files_in_group = 2
innodb_log_group_home_dir = ./
innodb_max_dirty_pages_pct = 75
innodb_max_purge_lag = 0
innodb_mirrored_log_groups = 1
innodb_old_blocks_pct = 37
innodb_old_blocks_time = 0
innodb_open_files = 300
innodb_purge_batch_size = 20
innodb_purge_threads = 0
innodb_read_ahead_threshold = 56
innodb_read_io_threads = 4
innodb_replication_delay = 0
innodb_rollback_on_timeout = OFF
innodb_spin_wait_delay = 6
innodb_stats_on_metadata = ON
innodb_stats_sample_pages = 8
innodb_strict_mode = ON
innodb_support_xa = ON
innodb_sync_spin_loops = 30
innodb_table_locks = ON
innodb_thread_concurrency = 0
innodb_thread_sleep_delay = 10000
innodb_use_native_aio = OFF
innodb_use_sys_malloc = ON
innodb_version = 1.1.1
innodb_write_io_threads = 4
Merci
de mon code conn.setAutoCommit (false); –
Mais commettez-vous après chaque commit unique, ou après un lot plus grand? – Mchl
BTW: Le moyen le plus rapide pour télécharger en vrac une grande quantité de données est d'utiliser 'LOAD DATA INFILE' – Mchl