3、存储层
MySQL主表设计:
CREATE TABLE keywords (
id INT PRIMARY KEY AUTO_INCREMENT,
keyword VARCHAR(50) NOT NULL,
frequency INT DEFAULT 0,
last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_keyword (keyword)
);
4、实时计算层
滑动窗口统计:每5分钟聚合一次
趋势计算:指数加权移动平均(EWMA)
二、核心实现要点
1、高频词去重
使用Bloom Filter过滤重复关键词
SQL实现:
INSERT INTO keywords (keyword, frequency)
VALUES ('test', 1)
ON DUPLICATE KEY UPDATE frequency = frequency + 1;
三、性能优化方案
1、表结构优化
分区表:按时间范围分区
ALTER TABLE keywords PARTITION BY RANGE (UNIX_TIMESTAMP(last_update)) (
PARTITION p0 VALUES LESS THAN (1672531200),
PARTITION p1 VALUES LESS THAN (1675209600)
);
2、查询加速
创建复合索引:(last_update, frequency)
使用覆盖索引:SELECT keyword,frequency FROM keywords WHERE ...;