feat: 更新数据库索引和分页逻辑,优化查询性能
This commit is contained in:
@@ -21,6 +21,22 @@ delete from cdr_event_smf WHERE created_at <= '2025-08-15';
|
||||
delete from ue_event_amf WHERE created_at <= '2025-08-15';
|
||||
delete from ue_event_mme WHERE created_at <= '2025-08-15';
|
||||
|
||||
ALTER TABLE `kpi_c_report_ims` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_c_report_upf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_c_report_udm` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_c_report_smf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_c_report_pcf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_c_report_amf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_c_report_ausf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_c_report_mme` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_report_ims` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_report_upf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_report_udm` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_report_smf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_report_pcf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_report_amf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_report_ausf` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_c_report_mme` DROP INDEX IF EXISTS `idx_timestamp`;
|
||||
ALTER TABLE `kpi_c_report_ims` ADD INDEX IF NOT EXISTS `idx_kpic_ims_rc`(`rm_uid` DESC, `created_at` DESC) USING BTREE COMMENT 'kpi_c_report_ims 报表时间索引';
|
||||
ALTER TABLE `kpi_c_report_upf` ADD INDEX IF NOT EXISTS `idx_kpic_upf_rc`(`rm_uid` DESC, `created_at` DESC) USING BTREE COMMENT 'kpi_c_report_upf 报表时间索引';
|
||||
ALTER TABLE `kpi_c_report_udm` ADD INDEX IF NOT EXISTS `idx_kpic_udm_rc`(`rm_uid` DESC, `created_at` DESC) USING BTREE COMMENT 'kpi_c_report_udm 报表时间索引';
|
||||
|
||||
@@ -126,13 +126,14 @@ for ne_type in ${ne_types}; do
|
||||
if [ $? = 0 ]; then
|
||||
echo "done"
|
||||
fi
|
||||
SQL="ALTER TABLE ${TABLE_NAME} ADD INDEX IF NOT EXISTS \`idx_timestamp\`(\`created_at\`) USING BTREE, ADD INDEX IF NOT EXISTS \`idx_uid_datetime\`(\`rm_uid\`, \`date\`, \`start_time\`) USING BTREE;"
|
||||
SQL="ALTER TABLE ${TABLE_NAME} ADD INDEX IF NOT EXISTS \`idx_rc_${ne_type}\`(\`rm_uid\` DESC, \`created_at\` DESC) USING BTREE, ADD INDEX IF NOT EXISTS \`idx_uid_datetime\`(\`rm_uid\`, \`date\`, \`start_time\`) USING BTREE;"
|
||||
|
||||
echo -n "Create index of ${TABLE_NAME} ..."
|
||||
mysql -u${USER} -p${PASSWORD} -P ${PORT} -h ${HOST} --protocol tcp -D ${DBNAME} -e "${SQL}"
|
||||
if [ $? = 0 ]; then
|
||||
echo "done"
|
||||
fi
|
||||
SQL="ALTER TABLE ${TABLE_NAME} ADD INDEX IF NOT EXISTS \`idx_timestamp\`(\`created_at\`) USING BTREE,ADD INDEX IF NOT EXISTS \`idx_uid_datetime\`(\`rm_uid\`, \`date\`, \`start_time\`) USING BTREE;"
|
||||
SQL="ALTER TABLE ${TABLE_NAME} ADD INDEX IF NOT EXISTS \`idx_rc_${ne_type}\`(\`rm_uid\` DESC, \`created_at\` DESC) USING BTREE, ADD INDEX IF NOT EXISTS \`idx_uid_datetime\`(\`rm_uid\`, \`date\`, \`start_time\`) USING BTREE;"
|
||||
echo -n "Create index of ${TABLE_NAME} ..."
|
||||
mysql -u${USER} -p${PASSWORD} -P ${PORT} --protocol tcp -D ${DBNAME} -e "${SQL}"
|
||||
if [ $? = 0 ]; then
|
||||
|
||||
@@ -111,7 +111,6 @@ func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, fileType string) st
|
||||
StartTime: start.UnixMilli(),
|
||||
EndTime: end.UnixMilli(),
|
||||
PageNum: 1,
|
||||
PageSize: 30000,
|
||||
}
|
||||
rows, total := s.imsCDREventService.SelectPage(query)
|
||||
if total == 0 {
|
||||
@@ -404,7 +403,6 @@ func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, fileType string) s
|
||||
StartTime: start.UnixMilli(),
|
||||
EndTime: end.UnixMilli(),
|
||||
PageNum: 1,
|
||||
PageSize: 30000,
|
||||
}
|
||||
rows, total := s.smscCDREventService.SelectPage(query)
|
||||
if total == 0 {
|
||||
@@ -624,7 +622,6 @@ func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, fileType string) st
|
||||
StartTime: start.UnixMilli(),
|
||||
EndTime: end.UnixMilli(),
|
||||
PageNum: 1,
|
||||
PageSize: 30000,
|
||||
}
|
||||
rows, total := s.smfCDREventService.SelectPage(query)
|
||||
if total == 0 {
|
||||
@@ -1036,7 +1033,6 @@ func (s BackupExportCDRProcessor) exportSGWC(hour int, rmUID, fileType string) s
|
||||
StartTime: start.UnixMilli(),
|
||||
EndTime: end.UnixMilli(),
|
||||
PageNum: 1,
|
||||
PageSize: 30000,
|
||||
}
|
||||
rows, total := s.sgwcCDREventService.SelectPage(query)
|
||||
if total == 0 {
|
||||
|
||||
@@ -254,6 +254,9 @@ func (r CDREventIMS) SelectByPage(querys model.CDREventIMSQuery) ([]model.CDREve
|
||||
tx = tx.Order(sortField)
|
||||
}
|
||||
|
||||
if querys.PageSize == 0 {
|
||||
querys.PageSize = total
|
||||
}
|
||||
// 查询数据分页
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
|
||||
@@ -63,6 +63,9 @@ func (r CDREventSGWC) SelectByPage(querys model.CDREventSGWCQuery) ([]model.CDRE
|
||||
tx = tx.Order(sortField)
|
||||
}
|
||||
|
||||
if querys.PageSize == 0 {
|
||||
querys.PageSize = total
|
||||
}
|
||||
// 查询数据分页
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
|
||||
@@ -235,6 +235,9 @@ func (r CDREventSMF) SelectByPage(querys model.CDREventSMFQuery) ([]model.CDREve
|
||||
tx = tx.Order(sortField)
|
||||
}
|
||||
|
||||
if querys.PageSize == 0 {
|
||||
querys.PageSize = total
|
||||
}
|
||||
// 查询数据分页
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
|
||||
@@ -255,6 +255,9 @@ func (r CDREventSMSC) SelectByPage(querys model.CDREventSMSCQuery) ([]model.CDRE
|
||||
tx = tx.Order(sortField)
|
||||
}
|
||||
|
||||
if querys.PageSize == 0 {
|
||||
querys.PageSize = total
|
||||
}
|
||||
// 查询数据分页
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
|
||||
Reference in New Issue
Block a user