第一阶段: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缓存服务器技术PS:因为篇幅问题,我只简单说一些基本概念,其实里面每一个知识点关系到的内容都不少。特别是第一阶段,不少工做几年的程序员,都不能彻底理解。我以为要真正理解索引,最好的办法就是在1000W-亿级以上的数据,进行测试SQL语句,再结合 explain 命令进行查看SQL语句索引状况。