点评的大数据解决方案

背景

点评现在 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
2
3
            total       used       free     shared    buffers     cached
Mem: 129073 127056 2017 0 412 68228

看 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 命令扩展