MYSQL: Difference between revisions

From The Power of Many
No edit summary
No edit summary
 
Line 4: Line 4:
这里所提的MySQL是 Oracle MySQL 和 MariaDB 的统称.
这里所提的MySQL是 Oracle MySQL 和 MariaDB 的统称.


=== Replication and HA design ===
===Replication and HA design===
通常需要考虑的准则
通常需要考虑的准则


* High Availability :  增加冗余, 在单台机器意外故障或出于维护目的下线的情况下保证服务可用
*High Availability :  增加冗余, 在单台机器意外故障或出于维护目的下线的情况下保证服务可用
* Performance: 增加机器数量以提供更强大的服务能力
*Performance: 增加机器数量以提供更强大的服务能力
* Segmentation: 隔离工作负载 避免某些繁重任务影响网站性能
*Segmentation: 隔离工作负载 避免某些繁重任务影响网站性能


常见的几种 MySQL replication 类型有 <u>'''Master-Slave'''</u> '''<u>Master-Master</u>''' 和 '''<u>Synchronous Cluster</u>'''
常见的几种 MySQL replication 类型有 <u>'''Master-Slave'''</u> '''<u>Master-Master</u>''' 和 '''<u>Synchronous Cluster</u>'''
Line 20: Line 20:
===Performance Tunning===
===Performance Tunning===
[https://github.com/major/MySQLTuner-perl MySQLTuner]
[https://github.com/major/MySQLTuner-perl MySQLTuner]
[[Category:MYSQL]]

Latest revision as of 07:55, 28 June 2020

介绍

MySQL 是一种关系型数据库管理系统 (RDBMS, relational database management system). 随着时间推移, 目前MySQL属于Oracle. 创始人从开源MySQL fork并创建了一个新的项目 MariaDB. MariaDB目前由社区维护.

这里所提的MySQL是 Oracle MySQL 和 MariaDB 的统称.

Replication and HA design

通常需要考虑的准则

  • High Availability : 增加冗余, 在单台机器意外故障或出于维护目的下线的情况下保证服务可用
  • Performance: 增加机器数量以提供更强大的服务能力
  • Segmentation: 隔离工作负载 避免某些繁重任务影响网站性能

常见的几种 MySQL replication 类型有 Master-Slave Master-MasterSynchronous Cluster

生产环境应避免Master-Master模式,这种模式看似解决了Master-Slave模式下的一些问题,但是也带来更严重的问题。在replication中断或其中一台服务器故障的情况下可能带来 数据冲突、数据丢失、重复数据 等问题。

Cluster

开源MySQL Cluster推荐使用 Galera Cluster或者 Percona.

Performance Tunning

MySQLTuner