sql >> データベース >  >> RDS >> Mysql

Perl DBIは、mysqlネイティブの複数挿入機能を使用して複数の行を挿入します

    2つのアプローチがあります。 (?, ?, ?)を挿入できます 配列のサイズに基づいた回数。テキスト操作は次のようになります:

    my $sql_values = join( ' ', ('(?, ?, ?)') x scalar(@array) );
    

    次に、execute()を呼び出すために配列をフラット化します 。厄介な文字列と配列の操作を行う必要があるため、この方法は避けます。

    もう1つの方法は、トランザクションを開始してから、1つの挿入ステートメントを複数回実行することです。

    my $sql = 'INSERT INTO tbl (col1, col2, col3)';
    $dbh->{AutoCommit} = 0;
    my $sth = $dbh->prepare_cached( $sql );
    $sth->execute( @$_ ) for @array;
    $sth->finish;
    $dbh->{AutoCommit} = 1;
    

    これは最初の方法よりも少し遅いですが、それでもステートメントの再解析を回避します。また、アトミックでありながらディスクI / Oを最適化しながら、最初のソリューションの微妙な操作を回避します。



    1. MaxscaleからProxySQLロードバランサーへの移行

    2. PHPを使用してチェックボックスの値をmysqlデータベースに保存する方法

    3. MySQLでテーブルを作成する

    4. SQLServerをSugarCRMに接続します