修改文件结构,统一文档格式
This commit is contained in:
76
scripts/test-connection.js
Normal file
76
scripts/test-connection.js
Normal file
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* 数据库连接测试脚本
|
||||
* @file test-connection.js
|
||||
* @description 测试数据库连接、连接池状态和查询性能
|
||||
*/
|
||||
const { sequelize } = require('../models');
|
||||
const { User } = require('../models');
|
||||
const dbPool = require('../config/database-pool');
|
||||
const queryOptimizer = require('../config/query-optimizer');
|
||||
const dbMonitor = require('../config/db-monitor');
|
||||
|
||||
async function testConnection() {
|
||||
try {
|
||||
console.log('开始测试数据库连接...');
|
||||
|
||||
// 测试数据库连接
|
||||
await sequelize.authenticate();
|
||||
console.log('数据库连接成功');
|
||||
|
||||
// 获取连接池状态
|
||||
const poolStatus = await dbPool.getPoolStatus();
|
||||
console.log('连接池状态:', JSON.stringify(poolStatus, null, 2));
|
||||
|
||||
// 获取数据库状态
|
||||
const dbStatus = await queryOptimizer.getDatabaseStatus();
|
||||
console.log('数据库状态:', JSON.stringify(dbStatus, null, 2));
|
||||
|
||||
// 查询用户数量
|
||||
console.time('用户查询');
|
||||
const userCount = await User.count();
|
||||
console.timeEnd('用户查询');
|
||||
console.log(`当前用户数量: ${userCount}`);
|
||||
|
||||
// 执行查询分析
|
||||
const userQuery = User.findAll();
|
||||
const explainResult = await queryOptimizer.explainQuery(userQuery);
|
||||
console.log('查询分析结果:', JSON.stringify(explainResult, null, 2));
|
||||
|
||||
// 获取表信息
|
||||
const tableInfo = await queryOptimizer.getTableInfo('users');
|
||||
console.log('用户表信息:', JSON.stringify(tableInfo, null, 2));
|
||||
|
||||
// 获取索引信息
|
||||
const indexInfo = await queryOptimizer.getIndexInfo('users');
|
||||
console.log('用户表索引:', JSON.stringify(indexInfo, null, 2));
|
||||
|
||||
// 监控连接状态
|
||||
const connectionStatus = await dbMonitor.checkConnectionStatus();
|
||||
console.log('连接监控状态:', JSON.stringify(connectionStatus, null, 2));
|
||||
|
||||
// 关闭数据库连接
|
||||
await sequelize.close();
|
||||
console.log('数据库连接已关闭');
|
||||
|
||||
process.exit(0);
|
||||
} catch (error) {
|
||||
console.error('数据库连接测试失败:', error);
|
||||
|
||||
// 尝试关闭数据库连接
|
||||
try {
|
||||
await sequelize.close();
|
||||
console.log('数据库连接已关闭');
|
||||
} catch (closeError) {
|
||||
console.error('关闭数据库连接失败:', closeError);
|
||||
}
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// 如果直接运行此脚本,则执行测试
|
||||
if (require.main === module) {
|
||||
testConnection();
|
||||
}
|
||||
|
||||
module.exports = testConnection;
|
||||
Reference in New Issue
Block a user