【发布时间】:2016-03-09 17:48:25
【问题描述】:
关于查询和 perl 的最佳实践的问题。
在 perl for 循环中进行选择是否有性能或“坏习惯”?将这么多选择快速发送到数据库是否有问题?
代码是准伪代码
@line 有 5000 行
foreach my $elem( @line ){
SQL = SELECT IGNORE INTO <table> ( column1, .. , column 10 ) VALUES ( 'a', .. , 'j' )
}
删除和/或更新呢?
foreach my $elem( @line ) {
my $UN = substr($elem, 0, 10 );
SQL = UPDATE <table> SET <column> = $UN;
}
foreach my $elem( @line ) {
my $UN = substr($elem, 0, 10 );
SQL = DELETE from <table> WHERE <column> = $UN
}
另外,我在同一个领域有一个问题,我要检查 5000 个项目,而我的数据库在任何给定时间都有 1 个元素到 5000 个元素。是否可以在 perl 中遍历我的 5000 个项目并删除数据库中的 ID,或者是否应该在发出删除命令之前先检查 ID 是否存在。
foreach my $elem ( @line ){
$ID = substr( $elem, 5, 0 );
SQL = DELETE FROM <table> WHERE id = $ID;
}
或者应该是这样的:
foreach my $elem ( @line ){
$ID = substr( $elem, 5, 0 );
SQL = DELETE FROM <table> WHERE id = $ID if ID exists;
}
谢谢, --Eherr
【问题讨论】: