Di satu pihak: Pada halaman pengurusan kluster yang sepadan dengan pangkalan data awan PolarDB dalam konsol Alibaba Cloud, klik satu klik dalam modul diagnosis dan pengoptimuman Semasa pengurusan sesi diagnostik, didapati bahawa masa pelaksanaan sql kemas kini tertentu adalah sangat panjang dan sangat kerap; >: Masa pelaksanaan perniagaan mula muncul secara berterusan dalam sistem pemantauan perniagaan Maklumat penggera dikeluarkan, dan data perniagaan penggera terus meningkat, dan beberapa operasi menjejaskan penggunaan pelanggan.
Latar Belakang PerniagaanDisebabkan oleh kerumitan aliran perniagaan yang terlibat dalam operasi perniagaan, perkongsian teknologi tulen bukanlah fokus perbincangan, untuk lebih memahami masalah Sebab mengapa ia berlaku adalah menggunakan analogi untuk menerangkan perniagaan yang kompleks seperti berikut: Terdapat tiga jadual dalam pangkalan data, jadual pertama ialah
t_datuk (jadual keturunan), DDL adalah seperti berikut: CREATE TABLE `t_grandfather ` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`count` int(11) NOT NULL DEFAULT 0 COMMENT '子孙后代数量',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='老爷表';
CREATE TABLE `t_father ` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`grandfather_id` int(11) NOT NULL COMMENT '老爷表id',
PRIMARY KEY (`id`),
KEY `idx_grandfather_id` (`grandfather_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='老爸表';
CREATE TABLE `t_grandson` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`grandfather_id` int(11) NOT NULL COMMENT '老爷表id',
PRIMARY KEY (`id`),
KEY `idx_grandfather_id` (`grandfather_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='孙子表';
t_father
jadual dant_grandson ditambah, kemas kini
t_grandson. Reka bentuk logik ini bukanlah masalah besar, tetapi memandangkan jumlah data yang besar dalam jadual cucu, masalah prestasi yang sangat serius akan timbul di sini. Berikut ialah sebahagian daripada pseudokod yang diekstrak daripada perniagaan /**
* 处理 father 的业务
*/
public void doFatherBusiness (){
//do fatherBusiness baba .... 此处省
// 插入 t_father 表
if (fatherMapper.inster(father)){
//update t_grandfather set count=count+1 where id= #{grandfatherId}
grandfatherMapper.updateCount(father.getGrandfatherId ()) ;
}
}
/**
* 处理 grandson 的业务
*/
public void doGrandsonBusiness (){
//do grandson baba .... 此处省略
// 插入 t_grandson 表
if(grandsonMapper.inster(grandson)){
//update t_grandfather set count=count+1 where id= #{grandfatherId}
grandfatherMapper.updateCount(grandson.getGrandfatherId());
}
}
1. Penyelesaian sementara:
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kegagalan pengeluaran yang disebabkan oleh mysql update sql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!