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

遅いMySQL挿入

    水平分割とblobフィールドの別のテーブルへの移動の時期かもしれません。この記事 「垂直分割に関するクイックサイドノート」の著者は、テーブルからより大きなvarcharフィールドを削除し、桁違いのクエリの速度を向上させます。

    その理由は、カバーするスペースが少ないと、ディスク上のデータの物理的なトラバースが大幅に高速化されるため、大きなフィールドを別の場所に移動するとパフォーマンスが向上するためです。

    また(おそらくすでに行っています)、キーのサイズはその使用速度に正比例するため、インデックス列のサイズを絶対最小値(md5のASCIIエンコーディングではchar(32))に減らすと便利です。 。

    InnoDBテーブルを使用して一度に複数の挿入を行う場合は、それらをトランザクションにラップし、1つのクエリで複数の挿入を行うことで、挿入の速度を大幅に向上させることができます。

    START TRANSACTION
    INSERT INTO x (id, md5, field1, field2) values (1, '123dab...', 'data1','data2'),(2,'ab2...','data3','data4'),.....;
    COMMIT
    


    1. MySQLで1時間ごとにデータを取得する方法

    2. SQL ServerのSESSIONPROPERTY()を使用してセッション設定を確認します

    3. java.lang.AbstractMethodError:com.mysql.jdbc.PreparedStatement.setBlob(ILjava / io / InputStream;)V

    4. MySQLとOracleデータベース間でのデータの転送