ホームページ  >  記事  >  データベース  >  Python の MySQL で準備されたステートメントを効率的に実行するにはどうすればよいですか?

Python の MySQL で準備されたステートメントを効率的に実行するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-06 12:44:02865ブラウズ

How can I efficiently execute prepared statements with MySQL in Python?

Python で MySQL でプリペアド ステートメントを使用する

Python コードを開発する場合、多くの場合、プリペアド ステートメントを使用して SQL データベースと対話する必要があります。これにより、より効率的な実行と SQL インジェクション攻撃に対する保護が可能になります。

コード内で、"PREPARE" ステートメントと "EXECUTE" ステートメントを直接使用しようとすると、構文エラーが発生します。これは、Python にはプリペアド ステートメント用の独自のメカニズムがないため、代わりに MySQLdb ライブラリの機能を使用する必要があるためです。

修正されたコードは次のようになります。

sql = ('INSERT INTO {} (date, time, tag, power) VALUES '
       '(%s, %s, %s, %s)'.format(self.db_scan_table))

for (d, t, tag, power) in <your loop>:
    self.cursor.execute(sql, (d, t, tag, power))

または、次のようになります。カーソル オブジェクトのexecute_many() メソッドを使用すると、複数の行を一度に挿入できます。

data = [(d, t, tag, power) for <your loop>]
self.cursor.executemany(sql, data)

これにより、大幅に改善されます。特に大規模なデータセットのパフォーマンス。

以上がPython の MySQL で準備されたステートメントを効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。