@umacloud/knowledge 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/00-governance/governance-capabilities.md +557 -0
  2. package/00-governance/knowledge-map.md +39 -0
  3. package/00-governance/maintenance-policy.md +76 -0
  4. package/00-governance/review-checklist.md +81 -0
  5. package/README.md +13 -0
  6. package/ai/01-standards/agent-development-complete.md +691 -0
  7. package/ai/01-standards/llm-application-complete.md +488 -0
  8. package/ai/01-standards/mlops-complete.md +798 -0
  9. package/ai/01-standards/prompt-engineering-complete.md +646 -0
  10. package/ai/01-standards/rag-architecture-complete.md +649 -0
  11. package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
  12. package/ai/03-checklists/ai-project-checklist.md +215 -0
  13. package/ai/04-antipatterns/ai-antipatterns.md +661 -0
  14. package/ai/05-cases/case-rag-production.md +147 -0
  15. package/ai/06-glossary/ai-glossary.md +162 -0
  16. package/ai/agent-evaluation-benchmark.md +53 -0
  17. package/ai/ai-agent-memory-context-management.md +41 -0
  18. package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
  19. package/ai/ai-data-security-and-compliance-playbook.md +37 -0
  20. package/ai/ai-domain-index-and-checklist.md +40 -0
  21. package/ai/ai-governance-maturity-model.md +50 -0
  22. package/ai/ai-model-selection-and-routing-strategy.md +47 -0
  23. package/ai/ai-observability-and-oncall-runbook.md +52 -0
  24. package/ai/ai-rag-engineering-playbook.md +42 -0
  25. package/ai/ai-red-team-and-safety-evaluation.md +42 -0
  26. package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
  27. package/ai/llm-agent-engineering-deep-dive.md +57 -0
  28. package/ai/prompt-and-tool-guardrails.md +52 -0
  29. package/api/01-standards/enterprise-api-standards.md +198 -0
  30. package/api/01-standards/rest-api-design-guide.md +63 -0
  31. package/api/02-playbooks/api-pagination-playbook.md +93 -0
  32. package/api/02-playbooks/graphql-production-playbook.md +176 -0
  33. package/api/03-checklists/api-review-checklist.md +55 -0
  34. package/api/04-antipatterns/api-antipatterns.md +112 -0
  35. package/architecture/01-standards/api-gateway-patterns.md +496 -0
  36. package/architecture/01-standards/cloud-native-patterns.md +644 -0
  37. package/architecture/01-standards/distributed-systems-patterns.md +591 -0
  38. package/architecture/01-standards/event-driven-architecture.md +595 -0
  39. package/architecture/01-standards/microservices-patterns-complete.md +968 -0
  40. package/architecture/01-standards/microservices-patterns.md +495 -0
  41. package/architecture/01-standards/system-design-interview.md +664 -0
  42. package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
  43. package/architecture/02-playbooks/migration-playbook.md +780 -0
  44. package/architecture/02-playbooks/system-design-playbook.md +779 -0
  45. package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
  46. package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
  47. package/architecture/05-cases/case-netflix-microservices.md +413 -0
  48. package/architecture/06-glossary/architecture-glossary.md +164 -0
  49. package/architecture/adr-template-and-examples.md +38 -0
  50. package/architecture/api-gateway-deep-dive.md +1291 -0
  51. package/architecture/configuration-management.md +1162 -0
  52. package/architecture/distributed-transactions.md +1220 -0
  53. package/architecture/microservices-complete.md +735 -0
  54. package/architecture/resilience-and-disaster-patterns.md +37 -0
  55. package/architecture/service-governance.md +1198 -0
  56. package/architecture/system-architecture-deep-dive.md +37 -0
  57. package/backend/01-standards/analytics-and-growth.md +65 -0
  58. package/backend/01-standards/api-and-error-conventions.md +120 -0
  59. package/backend/01-standards/application-layering-and-packaging.md +160 -0
  60. package/backend/01-standards/auth-implementation.md +104 -0
  61. package/backend/01-standards/backend-framework-idioms.md +74 -0
  62. package/backend/01-standards/background-jobs-and-async.md +66 -0
  63. package/backend/01-standards/caching-strategies-complete.md +390 -0
  64. package/backend/01-standards/config-and-observability.md +77 -0
  65. package/backend/01-standards/data-modeling-and-persistence.md +94 -0
  66. package/backend/01-standards/django-complete.md +1765 -0
  67. package/backend/01-standards/email-and-notifications.md +64 -0
  68. package/backend/01-standards/fastapi-complete.md +925 -0
  69. package/backend/01-standards/file-upload-and-storage.md +66 -0
  70. package/backend/01-standards/graphql-api-complete.md +416 -0
  71. package/backend/01-standards/llm-application-standard.md +78 -0
  72. package/backend/01-standards/message-queue-patterns.md +379 -0
  73. package/backend/01-standards/microservices-and-distributed.md +78 -0
  74. package/backend/01-standards/nestjs-complete.md +2167 -0
  75. package/backend/01-standards/payment-integration.md +80 -0
  76. package/backend/01-standards/rate-limiting-complete.md +451 -0
  77. package/backend/01-standards/realtime-and-websocket.md +65 -0
  78. package/backend/01-standards/search-and-filtering.md +64 -0
  79. package/backend/01-standards/spring-boot-complete.md +445 -0
  80. package/backend/02-playbooks/api-design-playbook.md +718 -0
  81. package/backend/02-playbooks/email-send-playbook.md +130 -0
  82. package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
  83. package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
  84. package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
  85. package/backend/03-checklists/api-launch-checklist.md +189 -0
  86. package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
  87. package/blockchain/01-standards/blockchain-basics.md +557 -0
  88. package/blockchain/01-standards/smart-contract-development.md +1315 -0
  89. package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
  90. package/cicd/01-standards/github-actions-complete.md +473 -0
  91. package/cicd/01-standards/release-and-store-submission.md +75 -0
  92. package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
  93. package/cicd/02-playbooks/release-management-playbook.md +605 -0
  94. package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
  95. package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
  96. package/cicd/05-cases/case-deployment-automation.md +221 -0
  97. package/cicd/05-cases/case-gitops-transformation.md +212 -0
  98. package/cicd/06-glossary/cicd-glossary.md +114 -0
  99. package/cicd/cicd-blueprint-deep-dive.md +38 -0
  100. package/cicd/release-readiness-gate.md +37 -0
  101. package/cloud-native/01-standards/container-security.md +741 -0
  102. package/cloud-native/01-standards/kubernetes-complete.md +812 -0
  103. package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
  104. package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
  105. package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
  106. package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
  107. package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
  108. package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
  109. package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
  110. package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
  111. package/cloud-native/03-checklists/container-security-checklist.md +431 -0
  112. package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
  113. package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
  114. package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
  115. package/cloud-native/05-cases/case-k8s-migration.md +478 -0
  116. package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
  117. package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
  118. package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
  119. package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
  120. package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
  121. package/data/01-standards/elasticsearch-complete.md +2098 -0
  122. package/data/01-standards/postgresql-complete.md +1613 -0
  123. package/data/01-standards/redis-complete.md +1527 -0
  124. package/data/02-playbooks/database-optimization-playbook.md +403 -0
  125. package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
  126. package/data/03-checklists/database-launch-checklist.md +187 -0
  127. package/data/04-antipatterns/database-antipatterns.md +873 -0
  128. package/data/05-cases/case-database-migration.md +310 -0
  129. package/data/06-glossary/database-glossary.md +440 -0
  130. package/data/data-governance-and-modeling-deep-dive.md +39 -0
  131. package/data-engineering/01-standards/airflow-complete.md +523 -0
  132. package/data-engineering/01-standards/kafka-complete.md +1521 -0
  133. package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
  134. package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
  135. package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
  136. package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
  137. package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
  138. package/database/01-standards/database-schema-standards.md +147 -0
  139. package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
  140. package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
  141. package/database/02-playbooks/postgresql-production-playbook.md +146 -0
  142. package/database/02-playbooks/redis-caching-playbook.md +117 -0
  143. package/database/03-checklists/database-review-checklist.md +50 -0
  144. package/database/04-antipatterns/database-antipatterns.md +112 -0
  145. package/design/01-standards/ui-design-system-complete.md +423 -0
  146. package/design/02-playbooks/design-handoff-playbook.md +254 -0
  147. package/design/02-playbooks/design-review-playbook.md +388 -0
  148. package/design/03-checklists/design-review-checklist.md +246 -0
  149. package/design/04-antipatterns/design-antipatterns.md +378 -0
  150. package/design/05-cases/case-design-system-adoption.md +328 -0
  151. package/design/06-glossary/design-glossary.md +329 -0
  152. package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
  153. package/design/ux-system-deep-dive.md +38 -0
  154. package/design-systems/00-craft-rules.md +71 -0
  155. package/design-systems/aesthetic-families.md +43 -0
  156. package/design-systems/anti-ai-slop.md +162 -0
  157. package/design-systems/bold-geometric.md +120 -0
  158. package/design-systems/brutalist-bold.md +103 -0
  159. package/design-systems/editorial-clean.md +109 -0
  160. package/design-systems/glass-aurora.md +108 -0
  161. package/design-systems/modern-minimal.md +145 -0
  162. package/design-systems/premium-luxury.md +106 -0
  163. package/design-systems/product-type-design-map.md +48 -0
  164. package/design-systems/soft-warm.md +123 -0
  165. package/design-systems/tech-utility.md +113 -0
  166. package/desktop/01-standards/desktop-app-standard.md +72 -0
  167. package/desktop/01-standards/desktop-design.md +71 -0
  168. package/development/00-governance/document-template.md +41 -0
  169. package/development/01-standards/api-versioning-strategies.md +432 -0
  170. package/development/01-standards/authentication-patterns-complete.md +479 -0
  171. package/development/01-standards/css-architecture-complete.md +550 -0
  172. package/development/01-standards/database-migration-strategies.md +484 -0
  173. package/development/01-standards/elasticsearch-complete.md +347 -0
  174. package/development/01-standards/git-complete.md +371 -0
  175. package/development/01-standards/golang-complete.md +1565 -0
  176. package/development/01-standards/graphql-complete.md +298 -0
  177. package/development/01-standards/javascript-bundlers-complete.md +469 -0
  178. package/development/01-standards/javascript-typescript-complete.md +528 -0
  179. package/development/01-standards/jest-complete.md +275 -0
  180. package/development/01-standards/linux-complete.md +234 -0
  181. package/development/01-standards/logging-observability-complete.md +526 -0
  182. package/development/01-standards/microservices-communication.md +502 -0
  183. package/development/01-standards/mongodb-complete.md +406 -0
  184. package/development/01-standards/oauth2-complete.md +285 -0
  185. package/development/01-standards/performance-optimization-complete.md +289 -0
  186. package/development/01-standards/playwright-complete.md +247 -0
  187. package/development/01-standards/postgresql-complete.md +456 -0
  188. package/development/01-standards/pytest-complete.md +340 -0
  189. package/development/01-standards/python-async-programming.md +902 -0
  190. package/development/01-standards/python-complete.md +956 -0
  191. package/development/01-standards/python-decorators-complete.md +799 -0
  192. package/development/01-standards/python-design-patterns.md +2854 -0
  193. package/development/01-standards/python-packaging-distribution.md +420 -0
  194. package/development/01-standards/python-testing-strategies.md +607 -0
  195. package/development/01-standards/python-web-frameworks-comparison.md +471 -0
  196. package/development/01-standards/redis-complete.md +317 -0
  197. package/development/01-standards/rest-api-complete.md +316 -0
  198. package/development/01-standards/rust-complete.md +578 -0
  199. package/development/01-standards/typescript-advanced-types.md +1513 -0
  200. package/development/01-standards/web-security-complete.md +292 -0
  201. package/development/02-playbooks/api-design-playbook.md +810 -0
  202. package/development/02-playbooks/database-migration-playbook.md +580 -0
  203. package/development/02-playbooks/debugging-playbook.md +692 -0
  204. package/development/02-playbooks/feature-delivery-playbook.md +430 -0
  205. package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
  206. package/development/02-playbooks/performance-optimization-playbook.md +531 -0
  207. package/development/02-playbooks/performance-tuning-playbook.md +652 -0
  208. package/development/02-playbooks/refactor-playbook.md +403 -0
  209. package/development/02-playbooks/release-playbook.md +469 -0
  210. package/development/03-checklists/architecture-review-checklist.md +168 -0
  211. package/development/03-checklists/data-migration-checklist.md +157 -0
  212. package/development/03-checklists/oncall-handover-checklist.md +173 -0
  213. package/development/03-checklists/pr-checklist.md +158 -0
  214. package/development/03-checklists/production-readiness-checklist.md +190 -0
  215. package/development/03-checklists/release-readiness-checklist.md +154 -0
  216. package/development/03-checklists/security-review-checklist.md +182 -0
  217. package/development/04-antipatterns/api-antipatterns.md +657 -0
  218. package/development/04-antipatterns/architecture-antipatterns.md +686 -0
  219. package/development/04-antipatterns/backend-antipatterns.md +648 -0
  220. package/development/04-antipatterns/cicd-antipatterns.md +540 -0
  221. package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
  222. package/development/04-antipatterns/data-antipatterns.md +658 -0
  223. package/development/04-antipatterns/database-antipatterns.md +578 -0
  224. package/development/04-antipatterns/frontend-antipatterns.md +635 -0
  225. package/development/04-antipatterns/reliability-antipatterns.md +700 -0
  226. package/development/04-antipatterns/security-antipatterns.md +747 -0
  227. package/development/05-cases/case-api-version-migration.md +428 -0
  228. package/development/05-cases/case-authorization-hardening.md +383 -0
  229. package/development/05-cases/case-bluegreen-rollback.md +466 -0
  230. package/development/05-cases/case-cache-snowball-protection.md +485 -0
  231. package/development/05-cases/case-ci-cd-pipeline.md +544 -0
  232. package/development/05-cases/case-database-scaling.md +500 -0
  233. package/development/05-cases/case-db-hotspot-optimization.md +487 -0
  234. package/development/05-cases/case-incident-mttr-reduction.md +563 -0
  235. package/development/05-cases/case-microservice-migration.md +375 -0
  236. package/development/05-cases/case-performance-optimization.md +406 -0
  237. package/development/05-cases/case-security-incident-response.md +345 -0
  238. package/development/06-glossary/full-stack-glossary.md +166 -0
  239. package/development/09-maturity/quarterly-audit-template.md +35 -0
  240. package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
  241. package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
  242. package/development/12-scenarios/development-scenarios-guide.md +565 -0
  243. package/development/13-implementation-assets/implementation-toolkit.md +282 -0
  244. package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
  245. package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
  246. package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
  247. package/development/api-contract-and-versioning-guide.md +36 -0
  248. package/development/api-governance-complete.md +43 -0
  249. package/development/backend-engineering-complete.md +43 -0
  250. package/development/code-review-quality-complete.md +43 -0
  251. package/development/concurrency-reliability-complete.md +43 -0
  252. package/development/database-engineering-complete.md +43 -0
  253. package/development/engineering-effectiveness-complete.md +43 -0
  254. package/development/engineering-standards-deep-dive.md +38 -0
  255. package/development/frontend-engineering-complete.md +43 -0
  256. package/development/performance-capacity-complete.md +43 -0
  257. package/development/refactor-migration-complete.md +42 -0
  258. package/development/refactoring-and-techdebt-playbook.md +37 -0
  259. package/development/security-in-development-complete.md +43 -0
  260. package/devops/01-standards/cicd-pipeline-complete.md +262 -0
  261. package/devops/01-standards/docker-complete.md +1490 -0
  262. package/devops/01-standards/github-actions-complete.md +337 -0
  263. package/devops/01-standards/kubernetes-complete.md +638 -0
  264. package/devops/01-standards/terraform-complete.md +2117 -0
  265. package/devops/02-playbooks/docker-compose-playbook.md +233 -0
  266. package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
  267. package/devops/02-playbooks/docker-production-playbook.md +952 -0
  268. package/edge-iot/01-standards/edge-iot-complete.md +473 -0
  269. package/experts/architect/api-design.md +178 -0
  270. package/experts/architect/methodology.md +124 -0
  271. package/experts/architect/security.md +75 -0
  272. package/experts/backend-lead/methodology.md +216 -0
  273. package/experts/devops/methodology.md +160 -0
  274. package/experts/frontend-lead/methodology.md +178 -0
  275. package/experts/product-manager/industry/ecommerce.md +43 -0
  276. package/experts/product-manager/industry/saas.md +40 -0
  277. package/experts/product-manager/methodology.md +97 -0
  278. package/experts/qa-lead/methodology.md +123 -0
  279. package/experts/qa-lead/test-strategy.md +128 -0
  280. package/experts/uiux-designer/methodology.md +125 -0
  281. package/frontend/01-standards/accessibility-complete.md +532 -0
  282. package/frontend/01-standards/accessibility-standard.md +74 -0
  283. package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
  284. package/frontend/01-standards/design-tokens-complete.md +444 -0
  285. package/frontend/01-standards/forms-and-validation.md +77 -0
  286. package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
  287. package/frontend/01-standards/i18n-and-localization.md +65 -0
  288. package/frontend/01-standards/nextjs-complete.md +451 -0
  289. package/frontend/01-standards/react-complete.md +713 -0
  290. package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
  291. package/frontend/01-standards/react-hooks-complete.md +1171 -0
  292. package/frontend/01-standards/seo-and-web-vitals.md +77 -0
  293. package/frontend/01-standards/state-management-complete.md +444 -0
  294. package/frontend/01-standards/vue-complete.md +499 -0
  295. package/frontend/01-standards/vue3-complete.md +2002 -0
  296. package/frontend/01-standards/web-framework-best-practices.md +64 -0
  297. package/frontend/01-standards/web-performance-complete.md +495 -0
  298. package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
  299. package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
  300. package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
  301. package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
  302. package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
  303. package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
  304. package/frontend/03-checklists/component-quality-checklist.md +166 -0
  305. package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
  306. package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
  307. package/frontend/05-cases/case-performance-optimization.md +274 -0
  308. package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
  309. package/harmony/01-standards/harmonyos-design.md +65 -0
  310. package/high-quality-engineering-playbook.md +54 -0
  311. package/incident/01-standards/incident-response-complete.md +303 -0
  312. package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
  313. package/incident/02-playbooks/postmortem-playbook.md +398 -0
  314. package/incident/03-checklists/incident-readiness-checklist.md +181 -0
  315. package/incident/04-antipatterns/incident-antipatterns.md +490 -0
  316. package/incident/05-cases/case-cascade-failure.md +176 -0
  317. package/incident/06-glossary/incident-glossary.md +114 -0
  318. package/incident/postmortem-and-response-deep-dive.md +39 -0
  319. package/industries/ecommerce/ecommerce-complete.md +631 -0
  320. package/industries/education/education-complete.md +555 -0
  321. package/industries/fintech/fintech-complete.md +501 -0
  322. package/industries/gaming/gaming-complete.md +587 -0
  323. package/industries/healthcare/healthcare-complete.md +452 -0
  324. package/low-code/01-standards/low-code-complete.md +944 -0
  325. package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
  326. package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
  327. package/miniprogram/01-standards/miniprogram-design.md +61 -0
  328. package/miniprogram/01-standards/miniprogram-standard.md +81 -0
  329. package/mobile/01-standards/android-material-design.md +70 -0
  330. package/mobile/01-standards/flutter-complete.md +384 -0
  331. package/mobile/01-standards/ios-design-hig.md +78 -0
  332. package/mobile/01-standards/mobile-app-standard.md +85 -0
  333. package/mobile/01-standards/react-native-complete.md +352 -0
  334. package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
  335. package/mobile/02-playbooks/mobile-performance.md +473 -0
  336. package/mobile/03-checklists/mobile-release-checklist.md +234 -0
  337. package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
  338. package/mobile/05-cases/case-app-performance.md +500 -0
  339. package/mobile/05-cases/case-app-startup-optimization.md +218 -0
  340. package/mobile/06-glossary/mobile-glossary.md +484 -0
  341. package/observability/01-standards/observability-standards.md +103 -0
  342. package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
  343. package/observability/02-playbooks/structured-logging-playbook.md +73 -0
  344. package/observability/03-checklists/observability-checklist.md +54 -0
  345. package/observability/04-antipatterns/observability-antipatterns.md +106 -0
  346. package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
  347. package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
  348. package/operations/03-checklists/production-launch-checklist.md +365 -0
  349. package/operations/04-antipatterns/operations-antipatterns.md +664 -0
  350. package/operations/05-cases/case-sre-practices.md +581 -0
  351. package/operations/06-glossary/operations-glossary.md +120 -0
  352. package/operations/aiops-anomaly-detection.md +758 -0
  353. package/operations/capacity-planning.md +1061 -0
  354. package/operations/chaos-engineering.md +659 -0
  355. package/operations/incident-command-system.md +38 -0
  356. package/operations/observability-complete.md +442 -0
  357. package/operations/slo-sli-playbook.md +517 -0
  358. package/operations/sre-operations-deep-dive.md +39 -0
  359. package/package.json +8 -0
  360. package/performance/01-standards/performance-and-scalability.md +80 -0
  361. package/performance/01-standards/performance-standards.md +156 -0
  362. package/performance/02-playbooks/query-optimization-playbook.md +103 -0
  363. package/performance/03-checklists/performance-checklist.md +56 -0
  364. package/performance/04-antipatterns/performance-antipatterns.md +146 -0
  365. package/product/01-standards/product-management-complete.md +285 -0
  366. package/product/02-playbooks/feature-launch-playbook.md +207 -0
  367. package/product/02-playbooks/user-research-playbook.md +532 -0
  368. package/product/03-checklists/feature-launch-checklist.md +275 -0
  369. package/product/04-antipatterns/product-antipatterns.md +355 -0
  370. package/product/05-cases/case-mvp-to-scale.md +384 -0
  371. package/product/06-glossary/product-glossary.md +462 -0
  372. package/product/feature-prioritization-framework.md +40 -0
  373. package/product/kpi-and-metric-tree.md +37 -0
  374. package/product/product-discovery-and-prd-deep-dive.md +41 -0
  375. package/quantum/01-standards/quantum-complete.md +1186 -0
  376. package/security/01-standards/api-security-complete.md +511 -0
  377. package/security/01-standards/container-runtime-security.md +574 -0
  378. package/security/01-standards/data-protection-gdpr.md +543 -0
  379. package/security/01-standards/owasp-top10-complete.md +1890 -0
  380. package/security/01-standards/secure-coding-baseline.md +90 -0
  381. package/security/01-standards/supply-chain-security.md +441 -0
  382. package/security/01-standards/web-security-checklist.md +108 -0
  383. package/security/01-standards/zero-trust-architecture.md +521 -0
  384. package/security/02-playbooks/auth-sso-playbook.md +166 -0
  385. package/security/02-playbooks/incident-response-security-playbook.md +588 -0
  386. package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
  387. package/security/02-playbooks/payment-integration-playbook.md +119 -0
  388. package/security/02-playbooks/penetration-testing-playbook.md +517 -0
  389. package/security/03-checklists/security-audit-checklist.md +356 -0
  390. package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
  391. package/security/05-cases/case-log4shell-incident.md +537 -0
  392. package/security/05-cases/case-major-breaches.md +468 -0
  393. package/security/06-glossary/security-glossary.md +212 -0
  394. package/security/compliance-automation.md +993 -0
  395. package/security/container-security.md +680 -0
  396. package/security/devsecops-complete.md +426 -0
  397. package/security/sast-dast-sca.md +775 -0
  398. package/security/secrets-management.md +594 -0
  399. package/security/security-architecture-deep-dive.md +37 -0
  400. package/security/threat-modeling-stride-playbook.md +40 -0
  401. package/seed-templates/auth-system.md +59 -0
  402. package/seed-templates/blog-content.md +94 -0
  403. package/seed-templates/dashboard.md +89 -0
  404. package/seed-templates/docs-site.md +73 -0
  405. package/seed-templates/e-commerce.md +50 -0
  406. package/seed-templates/saas-landing.md +92 -0
  407. package/seed-templates/settings-page.md +51 -0
  408. package/testing/01-standards/test-strategy-and-layering.md +83 -0
  409. package/testing/01-standards/testing-strategy-complete.md +422 -0
  410. package/testing/01-standards/unit-testing-best-practices.md +118 -0
  411. package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
  412. package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
  413. package/testing/03-checklists/test-strategy-checklist.md +208 -0
  414. package/testing/04-antipatterns/testing-antipatterns.md +718 -0
  415. package/testing/05-cases/case-testing-transformation.md +300 -0
  416. package/testing/06-glossary/testing-glossary.md +110 -0
  417. package/testing/risk-based-test-matrix.md +36 -0
  418. package/testing/testing-strategy-deep-dive.md +37 -0
@@ -0,0 +1,487 @@
1
+ ---
2
+ id: case-db-hotspot-optimization
3
+ title: 案例研究:数据库热点治理——核心查询延迟降低 95%
4
+ domain: development
5
+ category: 05-cases
6
+ difficulty: intermediate
7
+ tags: [agent, case, checklist, development, hotspot, optimization, 元数据]
8
+ quality_score: 70
9
+ last_updated: 2026-06-15
10
+ ---
11
+ # 案例研究:数据库热点治理——核心查询延迟降低 95%
12
+
13
+ ## 元数据
14
+
15
+ | 字段 | 值 |
16
+ |------|------|
17
+ | 行业 | 金融科技(消费信贷平台) |
18
+ | 系统规模 | 日放款 20 万笔,峰值 QPS 6,000 |
19
+ | 技术栈 | Java Spring Boot + MySQL 8.0 + Redis |
20
+ | 数据规模 | 核心表 12 亿行,日增 500 万行 |
21
+ | 团队规模 | 后端 16 人,DBA 2 人 |
22
+ | 治理周期 | 4 周(2024-05 至 2024-06) |
23
+ | 核心目标 | 放款查询 P99 从 3.2s 降到 150ms |
24
+
25
+ ---
26
+
27
+ ## 一、背景
28
+
29
+ ### 1.1 业务场景
30
+
31
+ 某消费信贷平台的核心业务流程:
32
+
33
+ ```
34
+ 用户申请 → 风控审核 → 额度计算 → 放款 → 还款
35
+ ```
36
+
37
+ 其中**放款查询**是高频操作:
38
+ - 用户查看放款进度(APP 首页轮询,每 5 秒一次)
39
+ - 风控系统查询历史放款记录(批量查询)
40
+ - 运营后台查询放款报表(复杂聚合)
41
+ - 催收系统查询逾期放款(定时批量)
42
+
43
+ ### 1.2 问题表现
44
+
45
+ 2024 年 5 月,随着业务量增长,放款相关查询出现严重性能劣化:
46
+
47
+ | 指标 | 正常值 | 当前值 | 影响 |
48
+ |------|--------|--------|------|
49
+ | 放款查询 P50 | 30ms | 450ms | 用户感知明显卡顿 |
50
+ | 放款查询 P99 | 150ms | 3,200ms | APP 超时,客诉激增 |
51
+ | MySQL CPU | < 60% | 88-95% | 数据库濒临崩溃 |
52
+ | 慢查询/小时 | < 10 | 850 | 影响所有查询性能 |
53
+ | InnoDB 行锁等待 | < 100/s | 2,800/s | 写操作严重阻塞 |
54
+
55
+ ### 1.3 核心表结构
56
+
57
+ ```sql
58
+ -- 放款记录表(12 亿行,580GB)
59
+ CREATE TABLE loan_records (
60
+ id BIGINT PRIMARY KEY AUTO_INCREMENT,
61
+ loan_no VARCHAR(32) UNIQUE,
62
+ user_id BIGINT NOT NULL,
63
+ product_id INT NOT NULL,
64
+ amount DECIMAL(15,2) NOT NULL,
65
+ status TINYINT NOT NULL, -- 0:处理中 1:已放款 2:已结清 3:逾期 4:已关闭
66
+ apply_time DATETIME NOT NULL,
67
+ loan_time DATETIME,
68
+ due_date DATE,
69
+ channel_id INT NOT NULL,
70
+ merchant_id INT NOT NULL,
71
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
72
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
73
+ INDEX idx_user_id (user_id),
74
+ INDEX idx_status (status),
75
+ INDEX idx_loan_time (loan_time),
76
+ INDEX idx_channel (channel_id),
77
+ INDEX idx_merchant (merchant_id)
78
+ ) ENGINE=InnoDB;
79
+ ```
80
+
81
+ ---
82
+
83
+ ## 二、分析过程
84
+
85
+ ### 2.1 慢查询采集与分类
86
+
87
+ 开启 MySQL 慢查询日志(阈值 200ms),采集 24 小时数据后分类:
88
+
89
+ | 类别 | 查询模式 | 频率 | 平均延迟 | 占比 |
90
+ |------|----------|------|----------|------|
91
+ | A | 用户查询自己的放款列表 | 3,200 QPS | 450ms | 45% |
92
+ | B | 按状态统计放款笔数/金额 | 200 QPS | 2,800ms | 25% |
93
+ | C | 按渠道+时间范围查询 | 150 QPS | 1,500ms | 15% |
94
+ | D | 按商户+日期查询逾期 | 80 QPS | 3,200ms | 10% |
95
+ | E | 其他 | 50 QPS | 800ms | 5% |
96
+
97
+ ### 2.2 逐类分析
98
+
99
+ #### 类别 A:用户查询放款列表
100
+
101
+ ```sql
102
+ -- 高频查询(3,200 QPS)
103
+ SELECT * FROM loan_records
104
+ WHERE user_id = 12345
105
+ ORDER BY created_at DESC
106
+ LIMIT 20;
107
+ ```
108
+
109
+ EXPLAIN 分析:
110
+
111
+ ```
112
+ +----+-------------+--------------+------+---------------+-------------+---------+-------+------+-----------+
113
+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
114
+ +----+-------------+--------------+------+---------------+-------------+---------+-------+------+-----------+
115
+ | 1 | SIMPLE | loan_records | ref | idx_user_id | idx_user_id | 8 | const | 4521 | Using ... |
116
+ | | | | | | | | | | filesort |
117
+ +----+-------------+--------------+------+---------------+-------------+---------+-------+------+-----------+
118
+ ```
119
+
120
+ **问题**:
121
+ 1. `idx_user_id` 索引只包含 `user_id`,查到 4521 行后需要回表取全部字段
122
+ 2. ORDER BY created_at 需要 filesort(索引无法覆盖排序)
123
+ 3. SELECT * 取了 15 个字段,大部分前端不需要
124
+
125
+ #### 类别 B:状态统计
126
+
127
+ ```sql
128
+ -- 运营报表(200 QPS)
129
+ SELECT status, COUNT(*) as cnt, SUM(amount) as total_amount
130
+ FROM loan_records
131
+ WHERE loan_time BETWEEN '2024-05-01' AND '2024-05-31'
132
+ GROUP BY status;
133
+ ```
134
+
135
+ **问题**:
136
+ 1. `idx_loan_time` 索引扫描 500 万行(整月数据)
137
+ 2. 每行都需要回表取 status 和 amount 字段
138
+ 3. GROUP BY 使用临时表
139
+
140
+ #### 类别 C:渠道查询
141
+
142
+ ```sql
143
+ -- 渠道管理(150 QPS)
144
+ SELECT * FROM loan_records
145
+ WHERE channel_id = 5
146
+ AND loan_time BETWEEN '2024-05-01' AND '2024-05-07'
147
+ AND status IN (0, 1)
148
+ ORDER BY loan_time DESC
149
+ LIMIT 50;
150
+ ```
151
+
152
+ **问题**:
153
+ 1. `idx_channel` 只有 channel_id,无法利用 loan_time 和 status 条件
154
+ 2. 优化器在 idx_channel 和 idx_loan_time 之间选择不稳定(有时全表扫描)
155
+
156
+ #### 类别 D:商户逾期查询
157
+
158
+ ```sql
159
+ -- 催收系统(80 QPS)
160
+ SELECT * FROM loan_records
161
+ WHERE merchant_id = 100
162
+ AND status = 3 -- 逾期
163
+ AND due_date < '2024-05-15'
164
+ ORDER BY amount DESC
165
+ LIMIT 100;
166
+ ```
167
+
168
+ **问题**:
169
+ 1. `idx_merchant` 无法覆盖 status 和 due_date 条件
170
+ 2. 逾期记录分布不均,大商户下有数百万条记录
171
+
172
+ ### 2.3 热点行锁分析
173
+
174
+ ```sql
175
+ -- 查看行锁等待
176
+ SELECT * FROM performance_schema.data_lock_waits;
177
+ ```
178
+
179
+ 发现热点行锁集中在:
180
+ 1. **状态更新**:放款成功后 UPDATE status = 1,每秒 3000+ 次
181
+ 2. **同一用户并发**:用户反复刷新导致同一行被并发读取和更新
182
+
183
+ ---
184
+
185
+ ## 三、优化方案
186
+
187
+ ### 3.1 索引优化
188
+
189
+ ```sql
190
+ -- 1. 用户查询:覆盖索引(消除回表 + filesort)
191
+ CREATE INDEX idx_user_created ON loan_records(user_id, created_at DESC);
192
+
193
+ -- 2. 渠道查询:组合索引
194
+ CREATE INDEX idx_channel_time_status ON loan_records(channel_id, loan_time, status);
195
+
196
+ -- 3. 商户逾期查询:组合索引
197
+ CREATE INDEX idx_merchant_status_due ON loan_records(merchant_id, status, due_date);
198
+
199
+ -- 4. 删除冗余索引
200
+ DROP INDEX idx_status ON loan_records; -- 区分度太低(5 个状态值),几乎不被优化器选择
201
+ DROP INDEX idx_channel ON loan_records; -- 被 idx_channel_time_status 覆盖
202
+ DROP INDEX idx_merchant ON loan_records; -- 被 idx_merchant_status_due 覆盖
203
+ ```
204
+
205
+ #### 索引添加策略(12 亿行大表)
206
+
207
+ 直接 ALTER TABLE 在 12 亿行表上执行预计耗时 6 小时,使用 pt-online-schema-change 在线添加:
208
+
209
+ ```bash
210
+ # 在线添加索引,不锁表
211
+ pt-online-schema-change \
212
+ --alter "ADD INDEX idx_user_created (user_id, created_at DESC)" \
213
+ --execute \
214
+ --max-load "Threads_running=50" \
215
+ --critical-load "Threads_running=100" \
216
+ --chunk-size 5000 \
217
+ --progress time,30 \
218
+ D=loan_db,t=loan_records
219
+ ```
220
+
221
+ ### 3.2 查询改写
222
+
223
+ #### 类别 A 查询改写
224
+
225
+ ```sql
226
+ -- 改写前:SELECT * + filesort
227
+ SELECT * FROM loan_records
228
+ WHERE user_id = 12345 ORDER BY created_at DESC LIMIT 20;
229
+
230
+ -- 改写后:指定字段 + 利用覆盖索引
231
+ SELECT id, loan_no, amount, status, loan_time, created_at
232
+ FROM loan_records
233
+ WHERE user_id = 12345
234
+ ORDER BY created_at DESC
235
+ LIMIT 20;
236
+ ```
237
+
238
+ 改写后 EXPLAIN:
239
+ ```
240
+ type: ref, key: idx_user_created, rows: 20, Extra: Using index condition
241
+ ```
242
+ 消除了 filesort,扫描行数从 4521 降到 20。
243
+
244
+ #### 类别 B 报表查询改写
245
+
246
+ ```sql
247
+ -- 改写方案:预计算 + 物化视图
248
+
249
+ -- 创建日级汇总表
250
+ CREATE TABLE loan_daily_stats (
251
+ stat_date DATE NOT NULL,
252
+ status TINYINT NOT NULL,
253
+ channel_id INT NOT NULL,
254
+ merchant_id INT NOT NULL,
255
+ loan_count INT NOT NULL DEFAULT 0,
256
+ total_amount DECIMAL(18,2) NOT NULL DEFAULT 0,
257
+ PRIMARY KEY (stat_date, status, channel_id, merchant_id)
258
+ ) ENGINE=InnoDB;
259
+
260
+ -- 每小时定时任务增量更新
261
+ INSERT INTO loan_daily_stats (stat_date, status, channel_id, merchant_id, loan_count, total_amount)
262
+ SELECT DATE(loan_time), status, channel_id, merchant_id, COUNT(*), SUM(amount)
263
+ FROM loan_records
264
+ WHERE updated_at >= NOW() - INTERVAL 2 HOUR
265
+ GROUP BY DATE(loan_time), status, channel_id, merchant_id
266
+ ON DUPLICATE KEY UPDATE
267
+ loan_count = VALUES(loan_count),
268
+ total_amount = VALUES(total_amount);
269
+
270
+ -- 报表查询改为查汇总表
271
+ SELECT status, SUM(loan_count), SUM(total_amount)
272
+ FROM loan_daily_stats
273
+ WHERE stat_date BETWEEN '2024-05-01' AND '2024-05-31'
274
+ GROUP BY status;
275
+ -- 扫描 31 天 x 5 状态 x N 渠道 ≈ 几千行(vs 原来 500 万行)
276
+ ```
277
+
278
+ ### 3.3 缓存层优化
279
+
280
+ ```java
281
+ // 用户放款列表缓存
282
+ @Cacheable(value = "user:loans", key = "#userId", unless = "#result == null")
283
+ public List<LoanBriefDTO> getUserLoans(Long userId, int page) {
284
+ // 缓存未命中时查数据库
285
+ return loanMapper.selectByUserId(userId, page);
286
+ }
287
+
288
+ // 写操作时失效缓存
289
+ @CacheEvict(value = "user:loans", key = "#loan.userId")
290
+ public void updateLoanStatus(Loan loan) {
291
+ loanMapper.updateStatus(loan);
292
+ }
293
+
294
+ // 缓存 TTL 策略
295
+ // 处理中的放款:TTL 30 秒(用户频繁刷新查进度)
296
+ // 已结清/已关闭:TTL 30 分钟(状态不再变化)
297
+ ```
298
+
299
+ ### 3.4 热点行锁治理
300
+
301
+ ```java
302
+ // 问题:大量并发 UPDATE 同一行(放款状态更新)
303
+ // 方案:消息队列削峰 + 合并更新
304
+
305
+ // 改造前:同步更新,高并发时行锁等待
306
+ public void onLoanSuccess(Long loanId) {
307
+ loanMapper.updateStatus(loanId, LOAN_SUCCESS); // 直接更新
308
+ }
309
+
310
+ // 改造后:异步队列 + 批量更新
311
+ public void onLoanSuccess(Long loanId) {
312
+ // 发送到 RocketMQ,按 loanId 取模分区(保证顺序)
313
+ mqProducer.send("loan-status-update", loanId, new StatusUpdate(loanId, LOAN_SUCCESS));
314
+ }
315
+
316
+ // 消费者:批量拉取 + 合并更新
317
+ @RocketMQMessageListener(topic = "loan-status-update")
318
+ public void onMessage(List<StatusUpdate> batch) {
319
+ // 按 loanId 去重(同一笔放款只取最后一条)
320
+ Map<Long, StatusUpdate> merged = dedup(batch);
321
+ // 批量更新
322
+ loanMapper.batchUpdateStatus(merged);
323
+ }
324
+ ```
325
+
326
+ ### 3.5 读写分离 + 查询路由
327
+
328
+ ```
329
+ 查询路由策略:
330
+ ├── 用户查自己的放款(实时性要求高)→ 主库
331
+ ├── 运营报表查询 → 从库 / 汇总表
332
+ ├── 渠道管理查询 → 从库
333
+ ├── 催收系统查询 → 从库
334
+ └── 数据导出 → 专用从库(避免影响线上)
335
+ ```
336
+
337
+ ---
338
+
339
+ ## 四、实施步骤
340
+
341
+ ### 4.1 Week 1:索引优化 + 查询改写
342
+
343
+ ```
344
+ Day 1: 在从库验证新索引效果
345
+ - 在从库添加 3 个新索引
346
+ - 用线上慢查询 SQL 验证执行计划
347
+ - 确认优化效果后安排主库变更
348
+
349
+ Day 2-3: 主库在线添加索引
350
+ - 使用 pt-online-schema-change 添加 3 个索引
351
+ - 分别耗时:2h, 3h, 2.5h
352
+ - 监控主从延迟和主库负载
353
+
354
+ Day 4: 查询改写上线
355
+ - 类别 A: SELECT * → 指定字段
356
+ - 类别 B: 暂时加 FORCE INDEX 强制使用新索引
357
+ - 灰度 10% → 50% → 100%
358
+
359
+ Day 5: 删除冗余索引
360
+ - 确认新索引生效后删除 3 个旧索引
361
+ - 释放磁盘空间 ~45GB
362
+ ```
363
+
364
+ ### 4.2 Week 2:缓存层建设
365
+
366
+ ```
367
+ Day 1-2: 用户放款列表缓存
368
+ - Redis 缓存层开发 + 单元测试
369
+ - 缓存失效策略实现
370
+
371
+ Day 3-4: 汇总表建设
372
+ - loan_daily_stats 表创建
373
+ - 历史数据回填(3 个月)
374
+ - 定时更新任务上线
375
+
376
+ Day 5: 报表查询切换
377
+ - 运营报表改为查询汇总表
378
+ - 灰度上线
379
+ ```
380
+
381
+ ### 4.3 Week 3:热点行锁治理 + 读写分离
382
+
383
+ ```
384
+ Day 1-3: 状态更新异步化
385
+ - RocketMQ 消费者开发
386
+ - 幂等性保障
387
+ - 灰度上线
388
+
389
+ Day 4-5: 读写分离
390
+ - ProxySQL 路由规则配置
391
+ - 各类查询路由测试
392
+ ```
393
+
394
+ ### 4.4 Week 4:压测验证 + 监控
395
+
396
+ ```
397
+ Day 1-2: 全链路压测
398
+ - 模拟 6,000 QPS 峰值场景
399
+ - 模拟 Redis 故障降级场景
400
+ - 验证所有优化效果
401
+
402
+ Day 3-5: 监控体系完善
403
+ - 慢查询实时告警(阈值 100ms)
404
+ - 索引使用率监控
405
+ - 行锁等待监控
406
+ - Grafana Dashboard 搭建
407
+ ```
408
+
409
+ ---
410
+
411
+ ## 五、结果数据
412
+
413
+ ### 5.1 查询性能对比
414
+
415
+ | 查询类别 | 优化前 P99 | 优化后 P99 | 改善幅度 |
416
+ |----------|-----------|-----------|----------|
417
+ | A: 用户放款列表 | 3,200ms | 25ms(缓存命中)/ 80ms(未命中) | -97% |
418
+ | B: 状态统计报表 | 2,800ms | 45ms(查汇总表) | -98% |
419
+ | C: 渠道查询 | 1,500ms | 120ms | -92% |
420
+ | D: 商户逾期查询 | 3,200ms | 95ms | -97% |
421
+ | **综合 P99** | **3,200ms** | **120ms** | **-96%** |
422
+
423
+ ### 5.2 数据库指标
424
+
425
+ | 指标 | 优化前 | 优化后 | 改善 |
426
+ |------|--------|--------|------|
427
+ | MySQL CPU | 88-95% | 35-45% | -55% |
428
+ | 慢查询/小时 | 850 | 3 | -99.6% |
429
+ | 行锁等待/秒 | 2,800 | 120 | -95.7% |
430
+ | 磁盘 IOPS | 12,000 | 4,500 | -62.5% |
431
+ | 索引空间 | 180GB | 135GB(删冗余后) | -25% |
432
+
433
+ ### 5.3 业务指标
434
+
435
+ | 指标 | 优化前 | 优化后 |
436
+ |------|--------|--------|
437
+ | APP 放款查询超时率 | 2.8% | 0.01% |
438
+ | 客诉"页面卡顿" | 日均 45 条 | 日均 2 条 |
439
+ | 放款成功率 | 98.5%(行锁超时导致失败) | 99.95% |
440
+
441
+ ---
442
+
443
+ ## 六、经验教训
444
+
445
+ ### 6.1 做对的事
446
+
447
+ 1. **先分析再优化**:通过慢查询分类发现了 4 类不同的问题,每类用不同方案解决,比统一加缓存更有效
448
+ 2. **覆盖索引消除回表**:类别 A 查询从 4521 行扫描降到 20 行,是索引优化的典型收益
449
+ 3. **汇总表替代实时聚合**:报表查询的数据量从 500 万行降到几千行,本质是空间换时间
450
+ 4. **异步削峰**:将高并发的状态更新改为消息队列异步处理,消除了行锁争用的根源
451
+ 5. **先从库验证**:新索引先在从库验证效果,避免在主库做无效变更
452
+
453
+ ### 6.2 做错的事
454
+
455
+ 1. **初期想用 SELECT ... FOR UPDATE 解决并发**:实际上加了更多锁,性能更差。正确方案是异步化
456
+ 2. **pt-osc 执行期间未控制并发**:第一个索引添加时 pt-osc chunk 过大,导致主库短暂抖动。后调小 chunk-size
457
+ 3. **汇总表初期未考虑数据修正**:放款状态变更后汇总数据不准确,后增加了修正逻辑
458
+
459
+ ### 6.3 关键认知
460
+
461
+ - 数据库热点治理必须同时看**索引、查询、缓存、并发控制**四个维度
462
+ - 12 亿行大表的任何 Schema 变更都必须用在线 DDL 工具
463
+ - `SELECT *` 是性能杀手,尤其是在大表上——只查需要的字段
464
+ - 单列索引在复杂查询中几乎无用,组合索引才是正解
465
+ - 报表查询和 OLTP 查询必须分离,一个慢查询可以拖垮整个数据库
466
+ - 索引不是越多越好,冗余索引浪费空间和写入性能
467
+
468
+ ---
469
+
470
+ ## Agent Checklist
471
+
472
+ 在 AI Agent 辅助执行数据库热点治理时,应逐项确认:
473
+
474
+ - [ ] **慢查询采集**:是否开启了慢查询日志并按频率/延迟分类
475
+ - [ ] **EXPLAIN 分析**:每个慢查询是否执行了 EXPLAIN ANALYZE
476
+ - [ ] **索引诊断**:是否检查了现有索引的使用率和覆盖度
477
+ - [ ] **组合索引**:多条件查询是否设计了合适的组合索引
478
+ - [ ] **覆盖索引**:高频查询是否可以通过覆盖索引消除回表
479
+ - [ ] **冗余索引**:是否识别并删除了冗余/无效索引
480
+ - [ ] **查询改写**:是否消除了 SELECT * 和不必要的 JOIN
481
+ - [ ] **读写分离**:报表/分析查询是否路由到从库
482
+ - [ ] **缓存设计**:高频读查询是否有缓存层保护
483
+ - [ ] **汇总表**:聚合查询是否通过预计算/物化视图加速
484
+ - [ ] **行锁治理**:高并发写操作是否有削峰/异步/合并策略
485
+ - [ ] **在线 DDL**:大表的索引/字段变更是否使用了在线 DDL 工具
486
+ - [ ] **压测验证**:优化后是否通过压测验证了目标 QPS 和延迟
487
+ - [ ] **监控告警**:是否建立了慢查询/锁等待/CPU 的实时监控和告警