1、读写分离
读写分离,将数据库的读写操作分开,比如让性能比较好的服务器去做写操作,性能一般的服务器做读操作。写入或更新操作频繁可以借助MQ,进行顺序写入或更新。
2、分库分表
分库分表是最常规有效的一种大数据解决方案。垂直拆分表,例如将表的大文本字段分离出来,成为独立的新表。水平拆分表,可以按时间,根据实际情况一个月或季度创建一个表,另外还可以按类型拆分。单表拆分数据应控制在1000万以内。分库分表后要注意对SQL语句的支持,稍不小心,可能就会造成业务数据混乱等问题。
3、数据缓存
使用缓存技术降低对数据库直接访问的压力,比如使用Redis内存数据库存储热点数据,全量缓存内存占用太大,所以要识别出热点数据进行缓存,比用用户信息表,可以考虑缓存一段时间内的活跃用户。但是使用服务缓存也有缺点,最常见的问题就是“击穿”,假如缓存都失效了,这时候并发请求都去访问MySQL,此时可能造成服务器挂掉,这个时候为了避免这种情况,一般都是使用互斥量来解决这种问题。
4、SQL语句优化,尽量避免联表查询,避免递归等消耗性能的语句。表设计优化,例如单表字段不宜过多,时间类型使用TIMESTAMP,字段尽量避免NULL等。索引优化,合理创建索引,索引不是越多越好,也不是所有的字段都适合建立索引。
5、条件允许可以考虑多节点负载均衡,或者使用分布式数据库TiDB、SequoiaDB。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐