Mjpaddy has asked for the wisdom of the Perl Monks concerning the following question:
I'm attempting to dump records into table from a txt file with validation and substring. This file have 170568 records.
From normal reading files and taking out substring out of each line from file and preparing insert statement to dump records took me arround ~14400 sec i.e. ~4 hr & more
Is there any way to optimized this process like multithreading or something but I never use it before
For time being I not put my data instead I build scenario
Input file is like
00032463000000001000000010000010014110662004071664629003128182 O# 00032463000000002000000010000010014110662004071664729003070909 O# 00032463000000003000000010000010014110662004071664829003861044 O# 00032463000000004000000010000010014110662004071664929003005555 O#
Sample Code
use strict; use warnings; use DBI; my $start = time(); my $data; my ($version,$jobnumber); my $file = "C:/temp/dump.txt"; open (FH, "$file") or die "$!"; while(<FH>){ $data .= $_; } $version = substr($data,0,3); $jobnumber = substr($data,4,5); my $databaseName = "basedb"; my $connectHost = "127.0.0.1"; my $DSN = "DBI:mysql:dbname=$databaseName;host=$conn +ectHost"; my $db_username = 'root'; my $db_password = 'root'; my $dbh = DBI->connect($DSN,$db_username,$db_passwor +d,{RaiseError=>1, PrintWarn=>0,A +utoCommit=>0}) || die "error connecting: $!"; my $dump_sql = "INSERT INTO temp (version,jobnumber) VALUES(?,?);"; my $dump_sth = $dbh->prepare($dump_sql) or die "$DBI::errstr"; eval{ $dump_sth->execute($version,$jobnumber) or die "$DBI::errstr"; $dbh->commit; }; if($@){ $dbh->rollback(); print "$@\n"; } my $end = time(); my $elapsed = $end - $start; print "Job took $elapsed sec to execute.\n";
I think I clear my question Please give me suggestion.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How to optimized mysql insert into table
by huck (Prior) on Jan 17, 2017 at 14:44 UTC | |
|
Re: How to optimized mysql insert into table
by Corion (Patriarch) on Jan 17, 2017 at 14:41 UTC | |
|
Re: How to optimized mysql insert into table
by Marshall (Canon) on Jan 18, 2017 at 10:00 UTC | |
|
Re: How to optimized mysql insert into table
by Mjpaddy (Acolyte) on Jan 17, 2017 at 15:01 UTC | |
by Corion (Patriarch) on Jan 17, 2017 at 15:06 UTC | |
by Anonymous Monk on Jan 17, 2017 at 18:00 UTC | |
by Corion (Patriarch) on Jan 17, 2017 at 18:07 UTC | |
by Marshall (Canon) on Jan 17, 2017 at 18:20 UTC | |
by poj (Abbot) on Jan 17, 2017 at 18:26 UTC | |
by Anonymous Monk on Jan 17, 2017 at 19:28 UTC |