Создать подключение к MYSQL один раз глобально или создавать каждый раз внутри функции?

Допустим пишу я телеграм бота на python и мне нужно что то делать с базой mysql. использую mysql-connector-python. Подключение надо создать один раз или при обработке каждого сообщения? Я считаю что надо создать одно подключение и держать. так например

bot = telebot.TeleBot("")
db = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="root",
    port="3307",
    database="youtube"
)
db.reconnect(attempts = 100, delay=10)

@bot.message_handler()
def route(message):
    cursor = db.cursor();
    sql = "SELECT * users"
    cursor.execute(sql)
    result = cursor.fetchall()
    db.commit()
    bot.send_message(message.chat.id, "Hello world!")

Однако мой знакомый отчаянно утверждает, что надо каждый раз создавать подключение. вот так например.

bot = telebot.TeleBot("")

@bot.message_handler()
def route(message):
      db = mysql.connector.connect(
          host="localhost",
          user="root",
          passwd="root",
          port="3307",
          database="youtube"
      )
     cursor = db.cursor();
     sql = "SELECT * users"
     cursor.execute(sql)
     result = cursor.fetchall()
     db.commit()
     db.close()
     bot.send_message(message.chat.id, "Hello world!")

Какой вариант правильный? Есть какие-то пруфы, документация на этот случай?


Ответы (0 шт):