天天看点

mysql 存储及查询亿级数据

借鉴博客

第一阶段:

  1. 一定要正确设计索引
  2. 一定要避免SQL语句全表扫描,所以SQL一定要走索引(如:一切的 > < != 等等之类的写法都会导致全表扫描)
  3. 一定要避免 limit 10000000,20 这样的查询
  4. 一定要避免 LEFT JOIN 之类的查询,不把这样的逻辑处理交给数据库
  5. 每个表索引不要建太多,大数据时会增加数据库的写入压力

第二阶段:

1.采用分表技术(大表分小表)

a)垂直分表:将部分字段分离出来,设计成分表,根据主表的主键关联

b)水平分表:将相同字段表中的记录按照某种Hash算法进行拆分多个分表

2.采用mysql分区技术(必须5.1版以上,此技术完全能够对抗Oracle),与水平分表有点类似,但是它是在逻辑层进行的水平分表

第三阶段(服务器方面):

1.采用memcached之类的内存对象缓存系统,减少数据库读取操作

2.采用主从数据库设计,分离数据库的读写压力

3.采用Squid之类的代理服务器和Web缓存服务器技术