0
假设服务器拥有数千个请求表单客户端,用于处理他们的数据包并在同一时刻保存到数据库。关闭sql连接的最佳做法是什么?
该脚本必须为每个数据包做一些(比方说6)sql查询。
现在,脚本打开一个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()
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是两个不同的软件。你不应该标记他们两个。 – Aldrin