解决数据库高并发的常见方案:
1) 缓存式的 Web 应用程序架构: 在 Web 层和 DB(数据库)层之间加一层 cache 层,主要目的:减少数据库读取负担,提高数 据读取速度。cache 存取的媒介是内存,可以考虑采用分布式的 cache 层,这样更容易破除内存容量 的限制,同时增加了灵活性。
2) 增加 Redis 缓存数据库:
3) 增加数据库索引
索引的设置建议避免踩以下两个坑:
- 索引越多,查询速度反而会变慢
- 数据表每写入一次数据,都会让后面的索引编号重新排序,仍然会降低速度(所以建议在经常变动的表里建索引)
4) 页面静态化:
嗯,减少用户访问服务器对数据库的读取量
5) MySQL 主从读写分离:
当数据库的写压力增加,cache 层(如 Memcached)只能缓解数据库的读取压力。读写集 中在一个数据库上让数据库不堪重负。读写分离就是只在主服务器上写,只在从服务器上读
6) 分表分库:
分表【水平拆分】。比如将数据表以业务类别进行拆分,缩短表的长度,可以提高数据库查询的速度(查询时长跟数据的长度成正比),间接提高并发洪峰的处理效率
8) 负载均衡集群:
终极解决办法,想要提高性能上的提高,最根本最有效的方法就是提高硬件上的配置,就酱