const mysql = require('mysql2/promise'); const path = require('path'); require('dotenv').config({ path: path.resolve(__dirname, '../../..', '.env') }); // Database configuration const dbConfig = { host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, waitForConnections: true, connectionLimit: 10, queueLimit: 0, // Add performance optimizations namedPlaceholders: true, maxPreparedStatements: 256, enableKeepAlive: true, keepAliveInitialDelay: 0, // Add memory optimizations flags: [ 'FOUND_ROWS', 'LONG_PASSWORD', 'PROTOCOL_41', 'TRANSACTIONS', 'SECURE_CONNECTION', 'MULTI_RESULTS', 'PS_MULTI_RESULTS', 'PLUGIN_AUTH', 'CONNECT_ATTRS', 'PLUGIN_AUTH_LENENC_CLIENT_DATA', 'SESSION_TRACK', 'MULTI_STATEMENTS' ] }; // Create a single pool instance to be reused const pool = mysql.createPool(dbConfig); async function getConnection() { return await pool.getConnection(); } async function closePool() { await pool.end(); } module.exports = { dbConfig, getConnection, closePool };