MySQL Driver
MySQL Driver
Section titled “MySQL Driver”Driver para conexão com bancos de dados MySQL, oferecendo alta performance e recursos avançados.
Instalação
Section titled “Instalação”npm install mysql2Configuração
Section titled “Configuração”const { HelperDB } = require('helperdb');
const db = new HelperDB({ driver: 'mysql', mysql: { host: 'localhost', port: 3306, user: 'username', password: 'password', database: 'helperdb', connectionLimit: 10, acquireTimeout: 60000, timeout: 60000 }});
await db.init();Opções de Configuração
Section titled “Opções de Configuração”Conexão Básica
Section titled “Conexão Básica”{ host: 'localhost', port: 3306, user: 'username', password: 'password', database: 'helperdb'}Conexão com Pool
Section titled “Conexão com Pool”{ host: 'localhost', port: 3306, user: 'username', password: 'password', database: 'helperdb', connectionLimit: 20, // Máximo de conexões simultâneas acquireTimeout: 60000, // Timeout para obter conexão timeout: 60000, // Timeout de query reconnect: true // Reconectar automaticamente}Conexão SSL
Section titled “Conexão SSL”{ host: 'localhost', port: 3306, user: 'username', password: 'password', database: 'helperdb', ssl: { ca: fs.readFileSync('ca-cert.pem'), key: fs.readFileSync('client-key.pem'), cert: fs.readFileSync('client-cert.pem') }}Características
Section titled “Características”✅ Vantagens
Section titled “✅ Vantagens”- Alta performance para grandes volumes
- Suporte a transações ACID
- Replicação e clustering
- Backup e restore nativos
- Índices automáticos para busca otimizada
⚠️ Considerações
Section titled “⚠️ Considerações”- Requer servidor MySQL em execução
- Configuração mais complexa
- Dependência externa (mysql2)
Exemplos de Uso
Section titled “Exemplos de Uso”Configuração para Produção
Section titled “Configuração para Produção”const db = new HelperDB({ driver: 'mysql', mysql: { host: process.env.MYSQL_HOST, port: parseInt(process.env.MYSQL_PORT) || 3306, user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: process.env.MYSQL_DATABASE, connectionLimit: 20, acquireTimeout: 60000, timeout: 60000, charset: 'utf8mb4', timezone: 'local' }});Múltiplas Conexões
Section titled “Múltiplas Conexões”// Banco principalconst mainDB = new HelperDB({ driver: 'mysql', mysql: { /* configuração principal */ }});
// Banco de cacheconst cacheDB = new HelperDB({ driver: 'mysql', mysql: { database: 'cache_db', /* outras configurações */ }});Monitoramento
Section titled “Monitoramento”// Verificar saúde da conexãoconst health = await db.ping();console.log(`MySQL conectado - Latência: ${health.latency}ms`);
// Estatísticas de conexãoconst stats = await db.stats();console.log('Conexões ativas:', stats.activeConnections);Casos de Uso Ideais
Section titled “Casos de Uso Ideais”- Aplicações enterprise com alta carga
- Sistemas que requerem transações complexas
- Aplicações com múltiplos serviços
- Sistemas que precisam de replicação
- Ambiente com administrador de banco dedicado