【51CTO独家特稿】如果单MySQL的优化始终还是顶不住压力时 , 这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集群)了 , 目前可行的方案有:
一、MySQL Cluster
优势:可用性非常高,性能非常好 。每份数据至少可在不同主机存一份拷贝,且冗余数据拷贝实时同步 。但它的维护非常复杂,存在部分Bug , 目前还不适合比较核心的线上系统 , 所以这个我不推荐 。
二、DRBD磁盘网络镜像方案
优势:软件功能强大,数据可在底层快设备级别跨物理主机镜像,且可根据性能和可靠性要求配置不同级别的同步 。IO操作保持顺序,可满足数据库对数据一致 性的苛刻要求 。但非分布式文件系统环境无法支持镜像数据同时可见,性能和可靠性两者相互矛盾,无法适用于性能和可靠性要求都比较苛刻的环境,维护成本高于 MySQL Replication 。另外,DRBD也是官方推荐的可用于MySQL高可用方案之一 , 所以这个大家可根据实际环境来考虑是否部署 。
三、MySQL Replication
在实际应用场景中,MySQL Replication是使用最为广泛的一种提高系统扩展性的设计手段 。众多的MySQL使用者通过Replication功能提升系统的扩展性后,通过 简单的增加价格低廉的硬件设备成倍 甚至成数量级地提高了原有系统的性能,是广大MySQL中低端使用者非常喜欢的功能之一,也是许多MySQL使用者选择MySQL最为重要的原因 。
比较常规的MySQL Replication架构也有好几种,这里分别简单说明下
MySQL Replication架构一:常规复制架构--Master-slaves,是由一个Master复制到一个或多个Salve的架构模式 , 主要用于读压力大的应用数据库端廉价扩展解决方案,读写分离 , Master主要负责写方面的压力 。
MySQL Replication架构二:级联复制架构,即Master-Slaves-Slaves,这个也是为了防止Slaves的读压力过大,而配置一层二级 Slaves,很容易解决Master端因为附属slave太多而成为瓶劲的风险 。
MySQL Replication架构三:Dual Master与级联复制结合架构,即Master-Master-Slaves,最大的好处是既可以避免主Master的写操作受到Slave集群的复制带来的影响,而且保证了主Master的单点故障 。
MySQL Replication的不足:如果Master主机硬件故障无法恢复,则可能造成部分未传送到slave端的数据丢失 。所以大家应该根据自己目前的网络 规划,选择自己合理的Mysql架构方案,跟自己的MySQL DBA和程序员多沟涌,多备份(备份我至少会做到本地和异地双备份),多测试,数据的事是最大的事,出不得半点差错,切记切记 。
如何提高mysql的读写性能我认为要想提高读写性能的话,那么实际上你就是应该努力的先提高自己的基本知识,掌握了就可以 。
如何提高MySQL Limit查询的性能?如何提高MySQL Limit查询的性能?
在MySQL数据库操作中,我们在做一些查询的时候总希望能避免数据库引擎做全表扫描,因为全表扫描时间长,而且其中大部分扫描对客户端而言是没有意义的 。其实我们可以使用Limit关键字来避免全表扫描的情况,从而提高效率 。
有个几千万条记录的表 on MySQL 5.0.x,现在要读出其中几十万万条左右的记录 。常用方法 , 依次循环:
select * from mytable where index_col = xxx limit offset, limit;
经验:如果没有blob/text字段,单行记录比较小,可以把 limit 设大点 , 会加快速度 。
推荐阅读
- sqlserver取字符串后几位相同的的简单介绍
- 微信视频号的礼物怎么查看,微信视频号的礼物怎么查看谁送的
- 隐藏分区怎么按硬盘分区,隐藏的硬盘分区
- 怎么用代理ip上网设置,如何设置代理ip地址
- python如何使程序发生,python如何运行程序
- 商城小程序技术开发公司,小程序商城开发平台
- 电脑免费模拟竞速跑车游戏,电脑模拟赛车
- python函数内建函数 python如何建立函数
- jquery使用什么获取dom对象,jquery如何获取dom对象