背景
点评现在 7000W条数据, 每条数据的查询频率都很高.
存储方式
mysql:
单表单库 + 3个读库
- 实例配置:
Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
12CPU,24核
3.2T SSD
128G内存
- 使用情况:
cpu:
load average: 1.52, 1.00, 0.87
cpu处于比较空闲的状态, 理论上load可以达到 24, 但是现在使用的只有 1左右
内存:
1 | total used free shared buffers cached |
看 cached还有 68228, 有大概一半的cached未被使用, 内存空闲了一半
磁盘:
50%左右
elasticsearch:
查询条件 + 主键
查询方式
读库 + es
查询条件是根据主键查询时, 直接走读库.
查询条件是多个where条件时, 根据es 查询拿到主键, 再去读库里面根据主键查询对应的数据
中小型项目怎么应对越来越大的数据呢
务必做好sql优化, 充分利用索引
step1 单体数据库
step2 单体数据库 + cache
step3 读写分离: 1写 + 1读 + cache
step4 读写分离: 1写 + 1读 + es + cache
step5 读写分离: 1写 + 多读 + es + cache
step6 读写分离: 分表 + 多读 + es + cache
step7 读写分离: 分库分表 + 多读 + es + cache
其他
free 命令扩展

