MySQL importing CSV files really slowBest approach to automatically processing .csv --> MySQLReally Broken MySql SetupSearching for patterns in csv filesubuntu - upload csv file using mysqlMySQL Workbench on MySQL 5.6.19trouble in installing mysql workbenchExamining EOL characters in a CSVlibreoffice calc: Importing csv full of URL'sMerging 2 csv filesMySql WorkBench Can't connect to MySQL server on '127.0.0.1' (111)

How do spaceships determine each other's mass in space?

This Alpine town?

Having the player face themselves after the mid-game

Power Strip for Europe

Shifting between bemols and diesis in the key signature

Source permutation

Should I take out a loan for a friend to invest on my behalf?

Is this Paypal Github SDK reference really a dangerous site?

Numbers app - select all the cells on an existing table to share the same background colour?

Confusion about Complex Continued Fraction

Why restrict private health insurance?

What are you allowed to do while using the Warlock's Eldritch Master feature?

What is the generally accepted pronunciation of “topoi”?

Help! My Character is too much for her story!

Are all players supposed to be able to see each others' character sheets?

What do *foreign films* mean for an American?

Doubts in understanding some concepts of potential energy

Is it possible to avoid unpacking when merging Association?

Can't make sense of a paragraph from Lovecraft

Vocabulary for giving just numbers, not a full answer

Is it safe to abruptly remove Arduino power?

Can we track matter through time by looking at different depths in space?

ER diagram relationship node size adjustment

Which classes are needed to have access to every spell in the PHB?



MySQL importing CSV files really slow


Best approach to automatically processing .csv --> MySQLReally Broken MySql SetupSearching for patterns in csv filesubuntu - upload csv file using mysqlMySQL Workbench on MySQL 5.6.19trouble in installing mysql workbenchExamining EOL characters in a CSVlibreoffice calc: Importing csv full of URL'sMerging 2 csv filesMySql WorkBench Can't connect to MySQL server on '127.0.0.1' (111)













1















I am trying to import CSV files into a table, but it has been very slow. I have about 1000 files with a file size of 40 MB each. Whenever I try to import it, I can see with for example MySQL workbench that it is inserting in a rate of about 30 - 60 rows per second. It will take ages before al my files are processed. How can I speed this up? I have already modified the mysql.cnf file to the following config, which unfortunately does not speed it up:



/etc/mysql/conf.d/mysql.cnf



[mysqld]
innodb_buffer_pool_size=12G
innodb_io_capacity = 2000
innodb_read_io_threads = 48
innodb_thread_concurrency = 0
innodb_write_io_threads = 48
innodb_buffer_pool_size=12G
innodb_log_file_size = 512M
max_connections = 1000
max_allowed_packet = 128M
#key_buffer = 1000M
bulk_insert_buffer_size = 1024M
innodb_doublewrite = 0
innodb_flush_log_at_trx_commit = 2
key_buffer_size = 4000M


It does say that 12G is configured in InnoDB according to PHPMyAdmin, so I can safely confirm that the config at least works.



Specs in case needed:



OS: Ubuntu 18.04
CPU: 6 cores, 12 threads @ 4.5 GHz
RAM: 32 GB DDR4 @ 3.2 GHz
SSD: 1 TB NVME @ 3.5 GB/s Read & 3.3 GB/s Write









share|improve this question







New contributor




Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • How do you do the inserts? One by one? Does the table have any indexes?

    – vidarlo
    2 hours ago











  • The inserts go one by one (Using Jetbrains Datagrip for it as phpmyadmin is very slow), and the table does not have any index to my knowledge

    – Mark D
    2 hours ago















1















I am trying to import CSV files into a table, but it has been very slow. I have about 1000 files with a file size of 40 MB each. Whenever I try to import it, I can see with for example MySQL workbench that it is inserting in a rate of about 30 - 60 rows per second. It will take ages before al my files are processed. How can I speed this up? I have already modified the mysql.cnf file to the following config, which unfortunately does not speed it up:



/etc/mysql/conf.d/mysql.cnf



[mysqld]
innodb_buffer_pool_size=12G
innodb_io_capacity = 2000
innodb_read_io_threads = 48
innodb_thread_concurrency = 0
innodb_write_io_threads = 48
innodb_buffer_pool_size=12G
innodb_log_file_size = 512M
max_connections = 1000
max_allowed_packet = 128M
#key_buffer = 1000M
bulk_insert_buffer_size = 1024M
innodb_doublewrite = 0
innodb_flush_log_at_trx_commit = 2
key_buffer_size = 4000M


It does say that 12G is configured in InnoDB according to PHPMyAdmin, so I can safely confirm that the config at least works.



Specs in case needed:



OS: Ubuntu 18.04
CPU: 6 cores, 12 threads @ 4.5 GHz
RAM: 32 GB DDR4 @ 3.2 GHz
SSD: 1 TB NVME @ 3.5 GB/s Read & 3.3 GB/s Write









share|improve this question







New contributor




Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • How do you do the inserts? One by one? Does the table have any indexes?

    – vidarlo
    2 hours ago











  • The inserts go one by one (Using Jetbrains Datagrip for it as phpmyadmin is very slow), and the table does not have any index to my knowledge

    – Mark D
    2 hours ago













1












1








1








I am trying to import CSV files into a table, but it has been very slow. I have about 1000 files with a file size of 40 MB each. Whenever I try to import it, I can see with for example MySQL workbench that it is inserting in a rate of about 30 - 60 rows per second. It will take ages before al my files are processed. How can I speed this up? I have already modified the mysql.cnf file to the following config, which unfortunately does not speed it up:



/etc/mysql/conf.d/mysql.cnf



[mysqld]
innodb_buffer_pool_size=12G
innodb_io_capacity = 2000
innodb_read_io_threads = 48
innodb_thread_concurrency = 0
innodb_write_io_threads = 48
innodb_buffer_pool_size=12G
innodb_log_file_size = 512M
max_connections = 1000
max_allowed_packet = 128M
#key_buffer = 1000M
bulk_insert_buffer_size = 1024M
innodb_doublewrite = 0
innodb_flush_log_at_trx_commit = 2
key_buffer_size = 4000M


It does say that 12G is configured in InnoDB according to PHPMyAdmin, so I can safely confirm that the config at least works.



Specs in case needed:



OS: Ubuntu 18.04
CPU: 6 cores, 12 threads @ 4.5 GHz
RAM: 32 GB DDR4 @ 3.2 GHz
SSD: 1 TB NVME @ 3.5 GB/s Read & 3.3 GB/s Write









share|improve this question







New contributor




Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I am trying to import CSV files into a table, but it has been very slow. I have about 1000 files with a file size of 40 MB each. Whenever I try to import it, I can see with for example MySQL workbench that it is inserting in a rate of about 30 - 60 rows per second. It will take ages before al my files are processed. How can I speed this up? I have already modified the mysql.cnf file to the following config, which unfortunately does not speed it up:



/etc/mysql/conf.d/mysql.cnf



[mysqld]
innodb_buffer_pool_size=12G
innodb_io_capacity = 2000
innodb_read_io_threads = 48
innodb_thread_concurrency = 0
innodb_write_io_threads = 48
innodb_buffer_pool_size=12G
innodb_log_file_size = 512M
max_connections = 1000
max_allowed_packet = 128M
#key_buffer = 1000M
bulk_insert_buffer_size = 1024M
innodb_doublewrite = 0
innodb_flush_log_at_trx_commit = 2
key_buffer_size = 4000M


It does say that 12G is configured in InnoDB according to PHPMyAdmin, so I can safely confirm that the config at least works.



Specs in case needed:



OS: Ubuntu 18.04
CPU: 6 cores, 12 threads @ 4.5 GHz
RAM: 32 GB DDR4 @ 3.2 GHz
SSD: 1 TB NVME @ 3.5 GB/s Read & 3.3 GB/s Write






18.04 mysql phpmyadmin mysql-workbench csv






share|improve this question







New contributor




Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 3 hours ago









Mark DMark D

1164




1164




New contributor




Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • How do you do the inserts? One by one? Does the table have any indexes?

    – vidarlo
    2 hours ago











  • The inserts go one by one (Using Jetbrains Datagrip for it as phpmyadmin is very slow), and the table does not have any index to my knowledge

    – Mark D
    2 hours ago

















  • How do you do the inserts? One by one? Does the table have any indexes?

    – vidarlo
    2 hours ago











  • The inserts go one by one (Using Jetbrains Datagrip for it as phpmyadmin is very slow), and the table does not have any index to my knowledge

    – Mark D
    2 hours ago
















How do you do the inserts? One by one? Does the table have any indexes?

– vidarlo
2 hours ago





How do you do the inserts? One by one? Does the table have any indexes?

– vidarlo
2 hours ago













The inserts go one by one (Using Jetbrains Datagrip for it as phpmyadmin is very slow), and the table does not have any index to my knowledge

– Mark D
2 hours ago





The inserts go one by one (Using Jetbrains Datagrip for it as phpmyadmin is very slow), and the table does not have any index to my knowledge

– Mark D
2 hours ago










2 Answers
2






active

oldest

votes


















3














You should have a look at the LOAD DATA function of MySQL, or the mysqlimport tool.



Those two functions are reportedly 20-30 times faster than insert'ing one by one, which would bring you up to at least 500-1000 rows a second.



As you don't provide any information about your data format, it's hard to give a detailed use instruction for mysqlimport, which seems to be the most applicable tool in your situation.






share|improve this answer






























    1














    It turned out that the file encoding was different between each file. Some files had UTF-8 encoding, some had ISO 8859-1 (Latin1) encoding, which caused a lot of programs to take ages to import due to (I think) converting it into another encoding. A 40 MB file now only takes about 6 seconds to import instead of 48 minutes.. Thanks @vidarlo for the suggestion of mysqlimport, which is certainly an improvement, but overall the time improvement is good enough for me!






    share|improve this answer








    New contributor




    Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.



















      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "89"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );






      Mark D is a new contributor. Be nice, and check out our Code of Conduct.









      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1124589%2fmysql-importing-csv-files-really-slow%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      3














      You should have a look at the LOAD DATA function of MySQL, or the mysqlimport tool.



      Those two functions are reportedly 20-30 times faster than insert'ing one by one, which would bring you up to at least 500-1000 rows a second.



      As you don't provide any information about your data format, it's hard to give a detailed use instruction for mysqlimport, which seems to be the most applicable tool in your situation.






      share|improve this answer



























        3














        You should have a look at the LOAD DATA function of MySQL, or the mysqlimport tool.



        Those two functions are reportedly 20-30 times faster than insert'ing one by one, which would bring you up to at least 500-1000 rows a second.



        As you don't provide any information about your data format, it's hard to give a detailed use instruction for mysqlimport, which seems to be the most applicable tool in your situation.






        share|improve this answer

























          3












          3








          3







          You should have a look at the LOAD DATA function of MySQL, or the mysqlimport tool.



          Those two functions are reportedly 20-30 times faster than insert'ing one by one, which would bring you up to at least 500-1000 rows a second.



          As you don't provide any information about your data format, it's hard to give a detailed use instruction for mysqlimport, which seems to be the most applicable tool in your situation.






          share|improve this answer













          You should have a look at the LOAD DATA function of MySQL, or the mysqlimport tool.



          Those two functions are reportedly 20-30 times faster than insert'ing one by one, which would bring you up to at least 500-1000 rows a second.



          As you don't provide any information about your data format, it's hard to give a detailed use instruction for mysqlimport, which seems to be the most applicable tool in your situation.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 2 hours ago









          vidarlovidarlo

          10.9k52750




          10.9k52750























              1














              It turned out that the file encoding was different between each file. Some files had UTF-8 encoding, some had ISO 8859-1 (Latin1) encoding, which caused a lot of programs to take ages to import due to (I think) converting it into another encoding. A 40 MB file now only takes about 6 seconds to import instead of 48 minutes.. Thanks @vidarlo for the suggestion of mysqlimport, which is certainly an improvement, but overall the time improvement is good enough for me!






              share|improve this answer








              New contributor




              Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.
























                1














                It turned out that the file encoding was different between each file. Some files had UTF-8 encoding, some had ISO 8859-1 (Latin1) encoding, which caused a lot of programs to take ages to import due to (I think) converting it into another encoding. A 40 MB file now only takes about 6 seconds to import instead of 48 minutes.. Thanks @vidarlo for the suggestion of mysqlimport, which is certainly an improvement, but overall the time improvement is good enough for me!






                share|improve this answer








                New contributor




                Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






















                  1












                  1








                  1







                  It turned out that the file encoding was different between each file. Some files had UTF-8 encoding, some had ISO 8859-1 (Latin1) encoding, which caused a lot of programs to take ages to import due to (I think) converting it into another encoding. A 40 MB file now only takes about 6 seconds to import instead of 48 minutes.. Thanks @vidarlo for the suggestion of mysqlimport, which is certainly an improvement, but overall the time improvement is good enough for me!






                  share|improve this answer








                  New contributor




                  Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.










                  It turned out that the file encoding was different between each file. Some files had UTF-8 encoding, some had ISO 8859-1 (Latin1) encoding, which caused a lot of programs to take ages to import due to (I think) converting it into another encoding. A 40 MB file now only takes about 6 seconds to import instead of 48 minutes.. Thanks @vidarlo for the suggestion of mysqlimport, which is certainly an improvement, but overall the time improvement is good enough for me!







                  share|improve this answer








                  New contributor




                  Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.









                  share|improve this answer



                  share|improve this answer






                  New contributor




                  Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.









                  answered 1 hour ago









                  Mark DMark D

                  1164




                  1164




                  New contributor




                  Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.





                  New contributor





                  Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.






                  Mark D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.




















                      Mark D is a new contributor. Be nice, and check out our Code of Conduct.









                      draft saved

                      draft discarded


















                      Mark D is a new contributor. Be nice, and check out our Code of Conduct.












                      Mark D is a new contributor. Be nice, and check out our Code of Conduct.











                      Mark D is a new contributor. Be nice, and check out our Code of Conduct.














                      Thanks for contributing an answer to Ask Ubuntu!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1124589%2fmysql-importing-csv-files-really-slow%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      -18.04, csv, mysql, mysql-workbench, phpmyadmin

                      Popular posts from this blog

                      Creating 100m^2 grid automatically using QGIS?Creating grid constrained within polygon in QGIS?Createing polygon layer from point data using QGIS?Creating vector grid using QGIS?Creating grid polygons from coordinates using R or PythonCreating grid from spatio temporal point data?Creating fields in attributes table using other layers using QGISCreate .shp vector grid in QGISQGIS Creating 4km point grid within polygonsCreate a vector grid over a raster layerVector Grid Creates just one grid

                      Why is this plane circling around the Lucknow airport every day?Why do aircraft on Flight Radar 24 jump around randomly sometimes?What airport has this walkway over a taxiway?How does Chicago O'Hare's tower sequence aircraft at peak capacity?Which airport is featured in this Delta commercial?After a crash, for how long is the airport closed?Can a passenger plane stand still in the air, or hover at a fixed location above a ground?What are those trucks towing around, and why?What is this airport outside of Cairo, Egypt?Which US airport has the lowest circling MDH?What is this airport video?

                      What is this called? Old film camera viewer?What makes a good film camera?What to do with an old film camera?What should one look for when buying a used film camera?What is the value and age of this pre-1967 Ricoh 35 mm camera?DSLR recommendation, question about old Canon 35mm film Camera & lensesCan anyone identify the silver rangefinder-style camera in this advertisement?What kind of a Polaroid 600-camera is this?Will an old film camera still work even when not used in a very long time?What is this camera / Can I develop the film?How to fit an action camera into antique (bellows) housing?What to check when buying used and old film bodies?