乐趣区

关于mysql:Mysql的优化

1. 备份

1.1 冷备份

定期对数据库中的数据通过 sql 的模式转存, 保证数据在肯定工夫内失去备份, 效率快.
毛病: 可能会造成数据肯定的失落, 冷备份只能在数据库敞开条件下备份.

1.2 热备份

实时对数据库的数据同步进行备份, 所以效率较冷备份慢, 但不会造成数据的失落.
原理(两个文件, 两个线程) : 数据库的主库要开启同步策略, 则必须关上二进制日志文件(默认敞开), 当用户进行 ” 更新 ” 操作时, 主库会将更新信息写入二进制日志文件(主库工作完结). 从库通过 IO 线程从二进制日志文件中读取更新信息, 而后通过异步形式写入中继文件,SQL 线程再从中继文件中读取更新信息, 将 sql 语句写入从库, 从而实现主从的同步.

主从挂载配置

进入 /etc/my.cnf 文件, 编辑 server-id= 1 和 log-bin=mysql-bin, 主从的 id 须要不统一, 则开启了二进制日志文件. 其余则需在数据库中配置.

2. 数据库代理

当存在多台数据库时, 须要引入数据库代理. 以 Mycat 中间件为例.Mycat 是 java 编写的程序, 只须要 java 环境就能够运行.Mycat 次要能够使数据库 读写拆散 分库分表, 来达到负载平衡.Mycat 默认端口个别是 8066.

读写拆散

通过 server.xml 和 schemas.xml(配置数据库读写的策略)文件来进行配置, 理论我的项目中读的操作更多, 所以主机个别执行写, 从机执行读.

分库分表

分库分表有垂直切分和程度切分两种策略.
垂直切分 : 依据性能和字段(列) 来进行切分, 比方将同一业务下的字段或罕用到的字段分出一个库或一个表, 来晋升效率.
程度切分 : 依据数据(行) 来进行切分, 比方海量数据时, 将罕用的数据分进去, 能够晋升解决效率.

3. 双机热备(高可用性)

当存在主从时, 就须要思考当主机宕机后, 从机的数据量比主机多而导致主机不工作. 所以咱们须要配置双机热备, 互为主从. 当主机宕机复原后, 从机会将数据又写入主机.

4. 缓存

应用缓存机制能够无效缩小用户对数据库的拜访, 疾速的从缓存中返回数据给用户(缓存运行在内存中, 效率快). 以 Redis 为例

退出移动版