前端:vanish squid等代理缓存
动态数据缓存:对于不是经常变化的用memcached 如果跟微博差不多的场景可以用redis
数据库:
为了备份和恢复:可以用主从 对于主-》从-》从 有个参数log_slave_update参数决定后面两个从是否写日志
一主多从也可以作为读写分离:
1)innodb引擎插入性能好,myisam查询性能好 ,在做读写分离时可利用下
2)数据库的设计和业务索引建立,对于大数据量也很重要
在此:个人简单表述下:
=》对于innodb引擎表是b+索引,索引有三大特征:索引高度低(在500亿数据中查询 id=xxx时差距不大) 索引有序(可以让group by union等操作避免排序==》排序对内存和cpu消耗很大,应该尽量避免) 索引存储列值 (如果只需要返回索引字段,可以避免回表操作,如果只需返回少量数据,有索引和没有索引差距也大,但是返回数据量大时,优化器会选择全表扫描=》也可以用force强制走索引,但是意义不大)
==》对于b+索引:在count(*) sum avg等聚合函数 max min group by等都起到很好效果,在大数据量下
===》位图索引:更新少的字段 比如性别
====》函数索引 upper会消除索引,需要建函数索引 等等
对于服务器集群:lvs ha+keepalived 在中大型网站 也可以用
图片,大文件:文件分布式系统(hadoop)
对于大数据量的session问题:基于memcache的session共享
在对于数据不能丢失的场景:可以用程序双写(innodb引擎的事务 也会丢失少量数据还有mysql主从复制也会)
在***系统 和电商系统中数据库的设计 侧重点不同 也会造成很大影响
这里简单分享一个小技巧:在***系统月初(记得不怎么清楚,但是只是为说明一个场景) 要统计话费订单时,由于插入数据过大,索引开销大,导致服务器很慢,这种时候可以让索引失效,速度会提升几百倍,完后再重建索引。
未完待续。
转载于:https://blog.51cto.com/2853725/1423153