0
サーバーには、データパッケージを処理してデータベースに保存する要求フォームクライアントが数千もあります。SQL接続を閉じるベストプラクティスは何ですか?
スクリプトは、各データパッケージに対していくつかのSQLクエリを作成する必要があります。
今のところ、スクリプトはSQL接続を1回開いて、各データパッケージの処理が完了したら終了します。すべての照会は、オープンおよびクローズのデータベース接続間で実行されます。
class Processor:
def __init__(self, data):
self.data = data
def open_sql_connection(self):
"connection commands, strings etc"
def insert_to_db(self, table, data):
"inserting data to table of the database"
def close_sql_connection(self):
"disconnecting from database"
def process()
self.open_sql_connection()
"begin data process"
.....
self.insert_to_db(table_1, some_of_data)
"continue to data process"
.....
self.insert_to_db(table_2, some_of_data)
"continue to data process"
.....
self.insert_to_db(table_3, some_of_data)
self.close_sql_connection()
は、私は、スクリプトオープンSQL接続を行う場合は、クエリが出現する前に、すべての利益を得る、そしてすぐ後の各クエリの終了を閉じます。速度を上げるように、テーブルのビジー状態を緩和し、ロックを回避します。
class Processor:
def __init__(self, data):
self.data = data
def open_sql_connection(self):
"connection commands, strings etc"
def insert_to_db(self, table, data):
"inserting data to table of the database"
def close_sql_connection(self):
"disconnecting from database"
def process()
"begin data process"
.....
self.open_sql_connection()
self.insert_to_db(table_1, some_of_data)
self.close_sql_connection()
"continue to data process"
.....
self.open_sql_connection()
self.insert_to_db(table_2, some_of_data)
self.close_sql_connection()
"continue to data process"
.....
self.open_sql_connection()
self.insert_to_db(table_3, some_of_data)
self.close_sql_connection()
スクリプトは何ですか。これは私たちが今後さらに必要とするような幅広い質問です。 「何千ものデータパッケージ」と言ったら、どういう意味ですか? –
改善された質問 –
Sql-serverとmysqlは2つの異なるソフトウェアです。両方にタグを付けるべきではありません。 – Aldrin