利用FRCRN增强语音识别前端:与Dify等AI Agent平台集成
在å��端开å�‘ä¸�æ•°æ�®åº“è¿�维场景ä¸MySQLå¤§è¡¨ä¼˜åŒ–æ˜¯é«˜é¢‘ä¸”æ ¸å¿ƒçš„æŠ€æœ¯éš¾é¢˜ã€‚å½“å�•表数æ�®é‡�çª�ç ´ç™¾ä¸‡çº§ã€�å˜å‚¨è¾¾åˆ°GB级别å��查询超时ã€�写入阻å¡�ã€�主ä»�延迟ç‰é—®é¢˜ä¼šé›†ä¸çˆ†å�‘ç›´æ�¥å½±å“�业务稳定性。本文结å�ˆç¬”者多年å®�战ç»�验系统梳ç�†MySQLå¤§è¡¨ä¼˜åŒ–ä¸æœ€å¸¸é�‡åˆ°çš„5大问题é…�套6套ä»�易到难的è�½åœ°è§£æ³•包å�«å…·ä½“SQL示例和å�‚æ•°é…�ç½®æ— è®ºæ˜¯å¼€å�‘新手还是资深è¿�维都能直æ�¥å¥—用å®�践。先æ˜�ç¡®å¤§è¡¨ç•Œå®šæ ‡å‡†é€šå¸¸å�•表数æ�®é‡�100万行ã€�å˜å‚¨å®¹é‡�5GBå�³å�¯è§†ä¸ºå¤§è¡¨ã€‚这类表的性能瓶颈并é��å�•ä¸€å› ç´ å¯¼è‡´å¤šæ˜¯IO开销ã€�é”�ç«�争ã€�索引设计ã€�事务æ�§åˆ¶ç‰é—®é¢˜å� åŠ çš„ç»“æ�œä¼˜åŒ–需循åº�æ¸�è¿›ã€�针对性çª�ç ´ã€‚ä¸‹æ–‡å°†ä»�问题剖æ��ã€�解法å®�æ“�ã€�误区规é�¿ä¸‰æ–¹é�¢å±•å¼€è�šç„¦æŠ€æœ¯ç»†èŠ‚å’Œè�½åœ°å�¯è¡Œæ€§åŠ©åŠ›å¤§å®¶é«˜æ•ˆæ��定MySQL大表性能难题。一ã€�MySQL大表优化5å¤§æ ¸å¿ƒé—®é¢˜å‰–æ��大表性能衰å‡�çš„æ ¸å¿ƒæ ¹æº�是数æ�®é‡�æ¿€å¢�导致的资æº�消耗过载结å�ˆç”µå•†ã€�社交ã€�物æµ�ç‰çœŸå®�业务场景以下5类问题最为典å�‹ä¹Ÿæ˜¯ä¼˜åŒ–çš„æ ¸å¿ƒåˆ‡å…¥ç‚¹ã€‚
索引设计ä¸�å�ˆç�†å¼•å�‘全表扫æ��索引是MySQL查询性能的“生命线â€�但大表场景ä¸ç´¢å¼•设计ä¸�当å��而会æˆ�为性能拖累这也是开å�‘者最易踩å�‘çš„ç‚¹ã€‚æ ¸å¿ƒé—®é¢˜è¡¨ç�°â‘ 索引缺失/å�•一仅建立å�•å—æ®µç´¢å¼•æ— æ³•è¦†ç›–é«˜é¢‘ç»„å�ˆæŸ¥è¯¢åœºæ™¯å¯¼è‡´æŸ¥è¯¢æ— 法命ä¸ç´¢å¼•被迫全表扫æ��â‘¡ 索引冗余过多盲目创建大é‡�索引ä¸�ä»…å� 用å˜å‚¨ç©ºé—´è¿˜ä¼šå¯¼è‡´æ�’å…¥/æ›´æ–°/åˆ é™¤æ“�作的索引维护æˆ�本剧å¢�写入性能下é™�50%以上③ 索引失效对索引列å�šå‡½æ•°æ“�作ã€�éš�å¼�ç±»å�‹è½¬æ�¢ã€�%开头模糊查询ç‰å¯¼è‡´ç´¢å¼•失效触å�‘全表扫æ��。å®�战案例æŸ�电商å�ƒä¸‡çº§è®¢å�•表t_order仅创建了idx_status订å�•状æ€�å’Œidx_create_time创建时间å�•å—æ®µç´¢å¼•。当业务需è¦�执行“查询近7天待å�‘货订å�•â€�select id,order_no from t_order where status1 and create_time
00:00:00æ—¶æ— æ³•å‘½ä¸æœ‰æ•ˆç´¢å¼•全表扫æ��耗时12ç§’ç›´æ�¥å¯¼è‡´è®¢å�•列表æ�¥å�£è¶…时。
å�•表数æ�®é‡�过载读写性能触顶当å�•表数æ�®é‡�çª�ç ´å�ƒä¸‡çº§ã€�å˜å‚¨è¾¾å‡ å��GBå��å�³ä¾¿ç´¢å¼•设计å�ˆç�†ä¹Ÿä¼šè§¦å�ŠMySQL性能天花æ�¿è¿™æ˜¯ç”±å…¶å˜å‚¨æœºåˆ¶å’ŒIO特性决定的。性能瓶颈细节①读å�–性能衰å‡�æ•°æ�®é¡µæ— 法全部载入内å˜InnoDBç¼“å†²æ± ç¼“å˜å‘½ä¸ç�‡ä»�90%以上é™�至30%以下大é‡�查询ä¾�èµ–ç£�盘éš�机IOå“�应速度ä»�毫秒级å�˜ä¸ºç§’级② 写入性能ä¸�è¶³æ¯�笔写入æ“�作需å�Œæ¥ç»´æŠ¤å¤šä¸ªç´¢å¼•å�Œæ—¶å†™å…¥binlogã€�redo logIO开销剧å¢�å¹¶å�‘写入能力ä»�万级é™�至å�ƒçº§é«˜å³°æœŸå‡ºç�°é”�ç‰å¾…ã€�事务阻å¡�。
分页查询效ç�‡ä½�下越往å��越慢分页查询是业务高频需求订å�•列表ã€�用户列表ã€�日志查询ç‰ä½†å¤§è¡¨ä¸å¸¸è§„limit offsetè¯æ³•å˜åœ¨è‡´å‘½ç¼ºé™·æ€§èƒ½éš�页ç �递å¢�急剧下é™�。底层å�Ÿå› MySQL执行limit 100000,20时会先扫æ��å‰�100020æ�¡æ•°æ�®å†�丢弃å‰�100000æ�¡ä»…è¿”å›�å��20æ�¡ç»“æ�œã€‚offset值越大扫æ��æ•°æ�®é‡�越多ç£�盘IO开销线性å¢�长当offset≥100万时查询直æ�¥è¶…时。é”�é—®é¢˜æ ¸å¿ƒåœºæ™¯å»¶è¿Ÿæ ¸å¿ƒå�Ÿå› 主库执行大表批é‡�写入ã€�全表扫æ��ã€�索引é‡�建时产生海é‡�binlog日志ä»�库å�Œæ¥æ—¥å¿—å¹¶å›�放的速度远ä½�äº�主库写入速度延迟ä»�秒级拉长至分钟级/å°�时级。ä¾�èµ–ä»�库的报表统计ã€�å�†å�²æŸ¥è¯¢ä¸šåŠ¡ä¼šå‡ºç�°â€œä¸»ä»�æ•°æ�®ä¸�一致â€�甚至引å�‘线上故障。
é”�ç«�争激烈并å�‘写入å�—阻1设计è�”å�ˆç´¢å¼•ä¸�覆盖索引大表高频更新/åˆ é™¤æ“�作易引å�‘é”�ç«�争尤其高并å�‘场景下é”�冲çª�会导致业务阻å¡�ã€�æ»é”�ç›´æ�¥å½±å“�系统å�¯ç”¨æ€§ã€‚2è§„é�¿ç´¢å¼•失效场景② é—´éš™é”�扩大InnoDB引æ“�行é”�ä¾�赖索引whereæ�¡ä»¶æœªå‘½ä¸ç´¢å¼•时触å�‘é—´éš™é”�/临键é”�é”�范围扩大引å�‘é”�ç«�争①表é”�阻å¡�MyISAM引æ“�仅支æŒ�表é”�批é‡�æ›´æ–°/åˆ é™¤æ—¶é”�定全表其他读写æ“�作全部阻å¡�3清ç�†å†—余索引③ 长事务å� é”�事务执行时间过长æŒ�有é”�资æº�ä¸�释放å��ç»æ“�作æ�’队ç‰å¾…åŠ å‰§é”�冲çª�ã€‚æ ¸å¿ƒæ€�è·¯é�¿å…�扫æ��æ— ç”¨æ•°æ�®é€šè¿‡å®šä½�æ•°æ�®ä½�ç½®æ��å�‡æ•ˆç�‡æ�¨è��两ç§�è�½åœ°æ–¹æ¡ˆ2书ç¾åˆ†é¡µæ³•é��主键æ�’åº�适用
主ä»�å»¶è¿ŸåŠ å‰§æ•°æ�®ä¸€è‡´æ€§å�—æ�Ÿä¸»ä»�å¤�制是缓解主库å�‹åŠ›çš„å¸¸ç”¨æ�¶æ�„但大表场景ä¸ä¸»ä»�å»¶è¿Ÿä¼šæ˜¾è‘—åŠ å‰§å¯¼è‡´æ•°æ�®ä¸€è‡´æ€§é—®é¢˜å½±å“�业务决ç–ã€‚æ ¸å¿ƒç›®æ ‡ç¼©å°�é”�范围ã€�缩çŸé”�æŒ�有时间具体å®�æ“�如下二ã€�ä»�易到难6套大表优化è�½åœ°è§£æ³•附å®�æ“�SQL大表优化需é�µå¾ªâ€œå…ˆè½¯å��硬ã€�å…ˆä½�æˆ�本å��高æˆ�本ã€�先索引å��拆分â€�å�Ÿåˆ™ä¼˜å…ˆè§£å†³æ€§ä»·æ¯”最高的问题å†�é€�æ¥è¿›è¡Œæ�¶æ�„调整é�¿å…�盲目优化带æ�¥çš„é£�险。2调整事务隔离级别
索引优化ä½�æˆ�本高收益优先è�½åœ°3é�¿å…�长事务示例订å�•表高频查询statuscreate_time创建è�”å�ˆè¦†ç›–索引针对高频组å�ˆæŸ¥è¯¢å»ºç«‹è�”å�ˆç´¢å¼•å�Œæ—¶çº³å…¥æŸ¥è¯¢å—段形æˆ�覆盖索引é�¿å…�å›�表æ“�作。索引优化是大表优化的基础投入最少ã€�æ”¶ç›Šæœ€å¤§æ ¸å¿ƒæ˜¯â€œå»ºç«‹é«˜æ•ˆç´¢å¼•è§„é�¿å¤±æ•ˆåœºæ™¯â€�具体å®�æ“�如下-- è�”å�ˆè¦†ç›–索引包å�«ç›é€‰å—æ®µæŸ¥è¯¢å—æ®µ CREATE INDEX idx_status_createTime_cover ON t_order (status, create_time, id, order_no); -- 查询时直æ�¥å‘½ä¸ç´¢å¼•æ— éœ€å›�表 SELECT id, order_no FROM t_order WHERE status1 AND create_time
00:00:00;å�•表数æ�®é‡�1000ä¸‡ä¸”ç´¢å¼•ä¼˜åŒ–æ— æ•ˆæ—¶éœ€è¿›è¡Œè¡¨æ‹†åˆ†åˆ†ä¸ºæ°´å¹³æ‹†åˆ†å’Œå�‚直拆分两ç§�æ–¹å¼�。索引列函数æ“�作SELECT * FROM t_order WHERE DATE(create_time)
;优化为create_time BETWEEN
00:00:00 AND
23:59:59ä¸¥æ ¼ç¦�æ¢ä»¥ä¸‹æ“�作é�¿å…�索引失效注æ„�è�”å�ˆç´¢å¼•é�µå¾ªâ€œæœ€å·¦å‰�ç¼€å�Ÿåˆ™â€�ç›é€‰æ�¡ä»¶éœ€åŒ¹é…�索引å‰�ç¼€å—æ®µå�¦åˆ™æ— 法命ä¸ã€‚éš�å¼�ç±»å�‹è½¬æ�¢å—ç¬¦ä¸²å—æ®µç”¨æ•°å—查询WHERE order_no123456优化为WHERE order_no123456-- 查看表索引 SHOW INDEX FROM t_order; -- 分æ��慢查询日志定ä½�未使用索引 -- åˆ é™¤å†—ä½™ç´¢å¼•å¦‚idx_statusä¸�è�”å�ˆç´¢å¼•idx_status_createTime_coverå‰�ç¼€é‡�å¤�å�¯åˆ 除idx_status DROP INDEX idx_status ON t_order;定期æ�’查冗余索引å‡�少写入维护æˆ�本%开头模糊查询LIKE %123456优化为å‰�缀匹é…�LIKE 123456%或用Elasticsearchå®�ç�°å…¨æ¨¡ç³ŠæŸ¥è¯¢2å�‚直拆分分列ä¸�分表
分页查询优化替代limit offsetæ��速10å€�通过读写分离分散主库å�‹åŠ›ä¼˜åŒ–ä¸»ä»�å�Œæ¥å‡�少延迟具体é…�置如下-- 上一页最å��一æ�¡æ•°æ�®ID为100000 SELECT id, order_no, status FROM t_order WHERE id 100000 LIMIT 20; -- 性能优势命ä¸ä¸»é”®ç´¢å¼•查询效ç�‡ä¸�å�—页ç �å½±å“�毫秒级å“�应利用主键有åº�性以上一页最大ID作为下一页æ�¡ä»¶ç›´æ�¥å®šä½�æ•°æ�®1主键ID分页法主键自å¢�表适用1读写分离æ�¶æ�„-- 上一页最å��一æ�¡æ•°æ�®çš„create_time为
12:00:00status1 SELECT id, order_no, status, create_time FROM t_order WHERE status1 AND create_time
12:00:00 ORDER BY create_time LIMIT 20; -- é…�套索引idx_status_createTimeè�”å�ˆç´¢å¼•覆盖ç›é€‰æ�’åº� CREATE INDEX idx_status_createTime ON t_order (status, create_time);记录上一页æ�’åº�å—æ®µçš„æœ€å��值作为下一页查询æ�¡ä»¶ç²¾å‡†å®šä½�å±€é™�仅适用äº�按主键æ�’åº�的分页场景。优势适é…�ä»»æ„�æ�’åº�åœºæ™¯æ€§èƒ½ç¨³å®šæ— é¡µç �é™�制。2主ä»�å�Œæ¥ä¼˜åŒ–
é”�优化å‡�少阻å¡�æ��å�‡å¹¶å�‘能力-- 优化å‰�未命ä¸ç´¢å¼•触å�‘é—´éš™é”� UPDATE t_order SET status2 WHERE order_no123456; -- æ— order_no索引 -- 优化å��命ä¸ç´¢å¼•使用行é”� CREATE INDEX idx_order_no ON t_order (order_no); UPDATE t_order SET status2 WHERE order_no123456; -- 批é‡�更新拆分æ¯�次1000æ�¡ç¼©çŸé”�æŒ�有时间 WHILE 11 DO UPDATE t_order SET status2 WHERE id BETWEEN start AND start999; IF ROW_COUNT()0 THEN BREAK; END IF; SET startstart1000; END WHILE;ç¡®ä¿�æ›´æ–°/åˆ é™¤è¯å�¥çš„whereæ�¡ä»¶å‘½ä¸ç´¢å¼•InnoDB自动使用行é”�é�¿å…�表é”�/é—´éš™é”�1优先使用行é”�1ç¦�用select *ä½¿ç”¨ç²¾å‡†å—æ®µæŸ¥è¯¢æ•ˆæ�œå‡�å°‘é—´éš™é”�产生é™�ä½�æ»é”�概ç�‡æ��å�‡å¹¶å�‘性能。-- 临时调整当å‰�会è¯� SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; -- 永久调整my.cnfé…�ç½®é‡�å�¯ç”Ÿæ•ˆ transaction-isolation READ-COMMITTEDMySQL默认隔离级别为Repeatable Read易产生间隙é”�业务å…�许时调整为Read Committed2å�†å�²æ•°æ�®å½’æ¡£å�Œæ—¶ç›‘æ�§é•¿äº‹åŠ¡å�Šæ—¶ç»ˆæ¢SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX WHERE TIMESTAMPDIFF(SECOND, trx_started, NOW())60;终æ¢è¶…æ—¶60秒的事务。-- 优化å‰�长事务å� é”�æ—¶é—´é•¿ START TRANSACTION; UPDATE t_order SET status2 WHERE id1; SELECT * FROM t_user WHERE id1; -- æ— å…³æŸ¥è¯¢ CALL log_insert(); -- 外部日志调用 COMMIT; -- 优化å��精简事务快速æ��交 START TRANSACTION; UPDATE t_order SET status2 WHERE id1; COMMIT; SELECT * FROM t_user WHERE id1; CALL log_insert();简化事务逻辑快速æ��交ç¦�æ¢äº‹åŠ¡ä¸åŒ…å�«æ— å…³æ“�作
表拆分çª�ç ´å�•表性能天花æ�¿å¾ˆå¤šå¼€å�‘è€…å› å¯¹MySQLå�Ÿç�†ç�†è§£ä¸�足陷入优化误区å��而导致性能下é™�以下三点需é‡�点规é�¿1水平拆分分表ä¸�分列误区一盲目å¢�åŠ ç´¢å¼•è¯¯åŒºäºŒè¿‡åº¦æ‹†åˆ†è¡¨è¯¯åŒºä¸‰å¿½è§†æ•°æ�®ä¸€è‡´æ€§æ€»ç»“MySQLå¤§è¡¨ä¼˜åŒ–æ˜¯ä¸€é¡¹ç³»ç»Ÿæ€§å·¥ç¨‹æ ¸å¿ƒåœ¨äº�“结å�ˆä¸šåŠ¡åœºæ™¯ã€�循åº�æ¸�进优化â€�。建议优先ä»�索引ã€�分页ã€�é”�ç‰ä½�æˆ�本æ“�作入手å†�æ ¹æ�®æ•°æ�®é‡�å¢�长和业务需求é€�æ¥å¼•入表拆分ã€�主ä»�åˆ†ç¦»ç‰æ�¶æ�„调整。误区二过度拆分表。表拆分虽能çª�ç ´å�•表性能天花æ�¿ä½†ä¼šå¢�åŠ ç³»ç»Ÿå¤�æ�‚度带æ�¥æ•°æ�®è·¯ç”±ã€�分布å¼�事务ã€�跨表查询ç‰é—®é¢˜ç»´æŠ¤æˆ�本显著上å�‡ã€‚è‹¥å�•表数æ�®é‡�未达å�ƒä¸‡çº§æˆ–通过索引ã€�查询优化å�¯æ»¡è¶³æ€§èƒ½éœ€æ±‚æ— éœ€æ€¥äº�拆分表。误区三忽视数æ�®ä¸€è‡´æ€§ã€‚表拆分ã€�主ä»�分离å��易出ç�°æ•°æ�®è·¯ç”±é”™è¯¯ã€�主ä»�å�Œæ¥å»¶è¿Ÿç‰é—®é¢˜è‹¥æœªå�šå¥½æ•°æ�®æ ¡éªŒå’Œè¡¥å�¿æœºåˆ¶ä¼šå¯¼è‡´ä¸šåŠ¡æ•°æ�®ä¸�一致引å�‘线上故障。优化过程ä¸éœ€é‡�点关注数æ�®ä¸€è‡´æ€§å»ºç«‹å®Œå–„的监æ�§å’Œå®¹é”™æœºåˆ¶ã€‚结è¯MySQLå¤§è¡¨ä¼˜åŒ–æ˜¯ä¸€é¡¹ç³»ç»Ÿæ€§å·¥ç¨‹æ ¸å¿ƒåœ¨äº�结å�ˆä¸šåŠ¡åœºæ™¯å¾ªåº�æ¸�进地开展优化工作而é��追求æ��致性能。ä»�索引优化ã€�分页优化ç‰ä½�æˆ�本æ“�作入手å†�æ ¹æ�®ä¸šåŠ¡å¢�长需求é€�æ¥å¼•入表拆分ã€�主ä»�åˆ†ç¦»ç‰æ�¶æ�„层é�¢çš„调整æ‰�能在ä¿�è¯�系统稳定性的å‰�æ��下å®�ç�°æ€§èƒ½çš„æŒ�ç»æ��å�‡ã€‚å�Œæ—¶å¤§è¡¨ä¼˜åŒ–å¹¶é��一劳永逸需建立长期的监æ�§å’Œè¿ä»£æœºåˆ¶æŒ�ç»å…³æ³¨æ•°æ�®é‡�å¢�é•¿ã€�查询模å¼�å�˜åŒ–å�Šæ—¶è°ƒæ•´ä¼˜åŒ–ç–略。希望本文的å®�战方案能为开å�‘者æ��ä¾›å�‚考助力大家高效解决MySQL大表性能问题æ�„建稳定ã€�高效的业务系统。按规则拆分å�Œç»“æ�„å°�表分摊数æ�®é‡�常è§�两ç§�规则-- 按年月拆分订å�•表 CREATE TABLE t_order_202401 LIKE t_order; CREATE TABLE t_order_202402 LIKE t_order; -- æ�’入数æ�®æ—¶æŒ‰æ—¶é—´è·¯ç”± INSERT INTO t_order_${yearmonth} SELECT * FROM t_order WHERE create_time BETWEEN ${startTime} AND ${endTime};①按时间拆分订å�•表ã€�日志表适用æ�é…�Sharding-JDBCä¸é—´ä»¶å®�ç�°è‡ªåŠ¨è·¯ç”±SELECT * FROM t_order WHERE create_time
;自动路由至t_order_202401å�Šå��ç»è¡¨ã€‚â‘¡ 按用户ID哈希拆分用户表ã€�订å�•表适用-- 用户IDå�–模100拆分共100å¼ è¡¨ CREATE TABLE t_user_00 LIKE t_user; CREATE TABLE t_user_01 LIKE t_user; ... CREATE TABLE t_user_99 LIKE t_user; -- 路由规则用户ID%100 表å��ç¼€ INSERT INTO t_user_${user_id%100} VALUES (...);优势数æ�®å�‡åŒ€åˆ†å¸ƒå¹¶å�‘能力翻å€�å±€é™�跨表查询需ä¸é—´ä»¶è�šå�ˆã€‚拆分高频ä¸�ä½�频嗿®µå‡�å°‘å�•表IO开销-- å�Ÿç”¨æˆ·è¡¨t_user拆分为主表ä»�表 -- ä¸»è¡¨é«˜é¢‘å—æ®µ CREATE TABLE t_user_main ( id BIGINT PRIMARY KEY, username VARCHAR(
, phone VARCHAR(
, email VARCHAR(
, create_time DATETIME ); -- ä»�表ä½�频嗿®µ CREATE TABLE t_user_extend ( user_id BIGINT PRIMARY KEY, avatar_url VARCHAR(
, intro TEXT, hobby VARCHAR(
, FOREIGN KEY (user_id) REFERENCES t_user_main(id) ); -- 查询用户基本信æ�¯ä»…访问主表 SELECT id, username, phone FROM t_user_main WHERE id1;优势æ��å�‡ä¸»è¡¨ç¼“å˜å‘½ä¸ç�‡å’ŒæŸ¥è¯¢é€Ÿåº¦ç»´æŠ¤æˆ�本ä½�。
主ä»�分离读写分离缓解主库å�‹åŠ›ä¸»åº“è´Ÿè´£å†™å…¥ä»�库负责读å�–通过MyCat/ProxySQLä¸é—´ä»¶è‡ªåŠ¨è·¯ç”±ä¸»åº“æ�’å…¥/æ›´æ–°/åˆ é™¤æ“�作高优先级业务ä»�库报表统计ã€�å�†å�²æŸ¥è¯¢ã€�用户端查询ä½�优先级业务ä¸é—´ä»¶è·¯ç”±è§„则示例所有SELECTè¯å�¥è·¯ç”±è‡³ä»�库INSERT/UPDATE/DELETE路由至主库。-- 主库my.cnfé…�ç½® log_bin /var/lib/mysql/mysql-bin.log binlog_format ROW -- è¡Œæ ¼å¼�å‡�少日志é‡�æ��å�‡å�Œæ¥å‡†ç¡®æ€§ server-id 1 -- ä»�库my.cnfé…�ç½® server-id 2 relay_log /var/lib/mysql/relay-bin.log log_slave_updates 1 read_only 1 slave_parallel_workers 4 -- å¼€å�¯å¹¶è¡Œå¤�制4个线程å›�放日志 slave_parallel_type LOGICAL_CLOCK -- 按逻辑时钟分组æ��å�‡å¹¶è¡Œæ•ˆç�‡å�Œæ—¶å¤§è¡¨å…¨è¡¨æ‰«æ��ã€�索引é‡�建ç‰è€—æ—¶æ“�作统一在ä»�库执行é�¿å…�å½±å“�主库。
细节优化拉满性能上é™�é€šè¿‡ç»†èŠ‚ä¼˜åŒ–è¿›ä¸€æ¥æ��å�‡æ€§èƒ½é™�ä½�系统éš�æ‚£-- 优化å‰� SELECT * FROM t_order WHERE id1; -- 优化å��ä»…æŸ¥è¯¢æ‰€éœ€å—æ®µé€‚é…�覆盖索引 SELECT id, order_no, status FROM t_order WHERE id1;-- 建立归档表 CREATE TABLE t_order_history LIKE t_order; -- è¿�ç§»3个月å‰�æ•°æ�®è‡³å½’档表 INSERT INTO t_order_history SELECT * FROM t_order WHERE create_time DATE_SUB(NOW(), INTERVAL 3 MONTH); -- åˆ é™¤ä¸»è¡¨å�†å�²æ•°æ�® DELETE FROM t_order WHERE create_time DATE_SUB(NOW(), INTERVAL 3 MONTH); -- 定期执行æ¯�月1å�·å‡Œæ™¨æ‰§è¡Œ3MySQLæ ¸å¿ƒå�‚数优化-- my.cnfæ ¸å¿ƒå�‚æ•°æ ¹æ�®æœ�务器é…�置调整 [mysqld] # ç¼“å†²æ± å¤§å°�物ç�†å†…å˜50%-70% innodb_buffer_pool_size 16G # 日志文件大å°�建议
Gå‡�少刷盘次数 innodb_log_file_size 2G # 日志刷盘ç–ç•¥1å�Œæ¥åˆ·ç›˜0异æ¥2æ¯�秒刷盘 innodb_flush_log_at_trx_commit 2 # è¿�æ�¥æ•°ä¸Šé™� max_connections 2000 # 慢查询阈值超过1秒记录 long_query_time 1 slow_query_log 1 slow_query_log_file /var/lib/mysql/slow.log三ã€�三大优化误区é�¿å¼€è¿™äº›â€œå�‘â€�索引并é��越多越好过多索引会导致写入性能下é™�还会产生索引ç¢�片。æ£ç¡®å�šæ³•ä»…ä¸ºé«˜é¢‘æŸ¥è¯¢åœºæ™¯å»ºç«‹ç´¢å¼•å®šæœŸæ¸…ç�†å†—余索引平衡查询ä¸�写入性能。表拆分会å¢�åŠ ç³»ç»Ÿå¤�æ�‚度跨表查询ã€�分布å¼�事务ç‰ç»´æŠ¤æˆ�本大幅上å�‡ã€‚æ£ç¡®å�𿳕å�•表数æ�®é‡�未达å�ƒä¸‡çº§ã€�性能å�¯æ»¡è¶³ä¸šåŠ¡éœ€æ±‚æ—¶ä¼˜å…ˆä¼˜åŒ–ç´¢å¼•å’ŒæŸ¥è¯¢æ— éœ€æ‹†åˆ†ã€‚è¡¨æ‹†åˆ†ã€�主ä»�分离å��易出ç�°æ•°æ�®è·¯ç”±é”™è¯¯ã€�主ä»�延迟问题。æ£ç¡®å�šæ³•å»ºç«‹æ•°æ�®æ ¡éªŒæœºåˆ¶å®šæ—¶æ¯”对主ä»�æ•°æ�®ã€�延迟补å�¿æœºåˆ¶å…³é”®ä¸šåŠ¡å¼ºåˆ¶è¯»ä¸»åº“ç¡®ä¿�æ•°æ�®ä¸€è‡´æ€§ã€‚优化过程ä¸éœ€å…¼é¡¾æ€§èƒ½æ��å�‡ä¸�系统稳定性é�¿å…�盲目追求æ��致性能而å¢�åŠ ç»´æŠ¤æˆ�本。本文æ��供的方案å�‡ç»�过å®�战验è¯�大家å�¯æ ¹æ�®è‡ªèº«ä¸šåŠ¡åœºæ™¯ç�µæ´»è°ƒæ•´é«˜æ•ˆè§£å†³å¤§è¡¨æ€§èƒ½ç“¶é¢ˆã€‚最å��欢è¿�åœ¨è¯„è®ºåŒºåˆ†äº«ä½ çš„å¤§è¡¨ä¼˜åŒ–ç»�验若有疑问å�¯ç•™è¨€è®¨è®ºä¸€èµ·äº¤æµ�è¿›æ¥
我的漂亮表嫂免费观看电视剧-我的漂亮表嫂免费观看电视剧应用