Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 585329
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T14:59:29+00:00 2026-05-13T14:59:29+00:00

I’m currently working on creating an environment to test performance of an app; I’m

  • 0

I’m currently working on creating an environment to test performance of an app; I’m testing with MySQL and InnoDB to find out which can serve us best. Within this environment, we’ll automatically prepare the database (load existing dumps) and instrument our test tools.

I’m preparing to test the same data dump with MySQL and InnoDB, but I’m already failing to bring the initial import to an usable speed for the InnoDB part. The initial dump took longer, but that didn’t concerned me yet:

$ for i in testdb_myisam testdb_innodb; do time mysqldump --extended-insert $i > $i.sql; done

real    0m38.152s
user    0m8.381s
sys     0m2.612s

real    1m16.665s
user    0m6.600s
sys     0m2.552s

However, the import times were quite different:

$ for i in  testdb_myisam testdb_innodb; do time mysql $i < $i.sql; done

real    2m52.821s
user    0m10.505s
sys     0m1.252s

real    87m36.586s
user    0m10.637s
sys     0m1.208s

After research I came over Changing tables from MyISAM to InnoDB make the system slow and then used set global innodb_flush_log_at_trx_commit=2:

$ time mysql testdb_innodb < testdb_innodb.sql

real    64m8.348s
user    0m10.533s
sys     0m1.152s

IMHO still shockingly slow. I’ve also disabled log_bin for these tests and here’s a list of all mysql variables.

Do I’ve to accept this long InnoDB times or can they be improved? I’ve full control over this MySQL server as it’s purely for this test environment.

I can apply special configurations only for initial import and change them back for applications tests so they better match production environments.

Update:

Given the feedback, I’ve disabled autocommit and the various checks:

$ time ( echo "SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0;" \
; cat testdb_innodb.sql ; echo "COMMIT;" ) | mysql testdb_innodb;date

real    47m59.019s
user    0m10.665s
sys     0m2.896s

The speed improved, but not that much. Is my test flawed?

Update 2:

I was able to gain access to a different machine were imports only took about 8 minutes. I compared the configurations and applied the following settings to my MySQL installation:

innodb_additional_mem_pool_size = 20971520
innodb_buffer_pool_size = 536870912
innodb_file_per_table
innodb_log_buffer_size = 8388608
join_buffer_size = 67104768
max_allowed_packet = 5241856
max_binlog_size = 1073741824
max_heap_table_size = 41943040
query_cache_limit = 10485760
query_cache_size = 157286400
read_buffer_size = 20967424
sort_buffer_size = 67108856
table_cache = 256
thread_cache_size = 128
thread_stack = 327680
tmp_table_size = 41943040

With these settings I’m now down to about 25 minutes. Still far away from the few minutes MyISAM takes, but it’s getting more usable for me.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T14:59:29+00:00Added an answer on May 13, 2026 at 2:59 pm

    Did you try the Bulk Data Loading Tips from the InnoDB Performance Tuning Tips (especially the first one):

    • When importing data into InnoDB, make sure that MySQL does not have
      autocommit mode enabled because that
      requires a log flush to disk for every
      insert. To disable autocommit during
      your import operation, surround it
      with SET autocommit and COMMIT
      statements:

      SET autocommit=0;
      ... SQL import statements ...
      COMMIT;
      

      If you use the mysqldump option --opt, you get dump files that are
      fast to import into an InnoDB table,
      even without wrapping them with the
      SET autocommit and COMMIT
      statements.

    • If you have UNIQUE constraints on secondary keys, you can speed up table
      imports by temporarily turning off the
      uniqueness checks during the import
      session:

      SET unique_checks=0;
      ... SQL import statements ...
      SET unique_checks=1;
      

      For big tables, this saves a lot of disk I/O because InnoDB can use
      its insert buffer to write secondary
      index records in a batch. Be certain
      that the data contains no duplicate
      keys.

    • If you have FOREIGN KEY constraints in your tables, you can
      speed up table imports by turning the
      foreign key checks off for the
      duration of the import session:

      SET foreign_key_checks=0;
      ... SQL import statements ...
      SET foreign_key_checks=1;
      

      For big tables, this can save a lot of disk I/O.

    IMO, the whole chapter is worth the read.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

link Im having trouble converting the html entites into html characters, (&# 8217;) i
I am trying to understand how to use SyndicationItem to display feed which is
I used javascript for loading a picture on my website depending on which small
I have a jquery bug and I've been looking for hours now, I can't
I have a string like this: La Torre Eiffel paragonata all&#8217;Everest What PHP function
I want use html5's new tag to play a wav file (currently only supported
I would like to run a str_replace or preg_replace which looks for certain words
I'm parsing an RSS feed that has an &#8217; in it. SimpleXML turns this
We're building an app, our first using Rails 3, and we're having to build
I have a text area in my form which accepts all possible characters from

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.