页面静态化 (页面层面的缓存)
缓存 (memcached、redis等,数据缓存、避免多次请求)
集群负载均衡(单机处理能力不足)
分库分表(大量数据的处理、原则分、分、分)
读写分离
队列、MQ、数据库增加加锁(防止并发)
存储(IO最耗性能)
小型机(提交硬件性能,呵呵)
..... 等待再补充
数据库层面:
当数据增加到100万以上,那么,MySQL的效能急剧下降
常用的优化措施是M-S(主-从)方式进行同步复制
M-M-Slaves方式,两个M可进行切换,Slaves可进行负载均衡
随着用户进一步增加,你的用户表数据超过1千万,这时那个M变成了SPOF
不能任意扩充Slaves,否则复制同步的开销将直线上升
方法是表分区,从业务层面上进行分区
最简单的,以用户数据为例。根据一定的切分方式,比如id,切分到不同的数据库集群去
需要注意的是:
1、禁用全部auto_increment的字段
2、id需要采用通用的算法集中分配
3、要具有比较好的方法来监控mysql主机的负载和服务的运行状态。如果你有30台以上的mysql数据库在跑就明白我的意思了。
4、不要使用持久性链接(不要用pconnect),相反,使用sqlrelay这种第三方的数据库链接池,或者干脆自己做。