前端:vanish squid等代理缓存

     动态数据缓存:对于不是经常变化的用memcached 如果跟微博差不多的场景可以用redis


数据库:

  1. 为了备份和恢复:可以用主从 对于主-》从-》从 有个参数log_slave_update参数决定后面两个从是否写日志

  2. 一主多从也可以作为读写分离:

    1)innodb引擎插入性能好,myisam查询性能好 ,在做读写分离时可利用下

    2)数据库的设计和业务索引建立,对于大数据量也很重要

    在此:个人简单表述下:

    =》对于innodb引擎表是b+索引,索引有三大特征:索引高度低(在500亿数据中查询 id=xxx时差距不大)  索引有序(可以让group by union等操作避免排序==》排序对内存和cpu消耗很大,应该尽量避免) 索引存储列值 (如果只需要返回索引字段,可以避免回表操作,如果只需返回少量数据,有索引和没有索引差距也大,但是返回数据量大时,优化器会选择全表扫描=》也可以用force强制走索引,但是意义不大)

    ==》对于b+索引:在count(*)  sum  avg等聚合函数 max  min group by等都起到很好效果,在大数据量下

    ===》位图索引:更新少的字段 比如性别

    ====》函数索引  upper会消除索引,需要建函数索引 等等

  3. 对于服务器集群:lvs ha+keepalived 在中大型网站 也可以用

  4. 图片,大文件:文件分布式系统(hadoop) 

  5. 对于大数据量的session问题:基于memcache的session共享

  6. 在对于数据不能丢失的场景:可以用程序双写(innodb引擎的事务 也会丢失少量数据还有mysql主从复制也会)

  7. 在***系统 和电商系统中数据库的设计 侧重点不同 也会造成很大影响

  8. 这里简单分享一个小技巧:在***系统月初(记得不怎么清楚,但是只是为说明一个场景) 要统计话费订单时,由于插入数据过大,索引开销大,导致服务器很慢,这种时候可以让索引失效,速度会提升几百倍,完后再重建索引。

未完待续。