前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3分钟速读原著《高性能MySQL》(四)

3分钟速读原著《高性能MySQL》(四)

作者头像
cwl_java
发布2019-10-26 20:42:15
1.2K0
发布2019-10-26 20:42:15
举报
文章被收录于专栏:cwl_Javacwl_Java

第十一章 MySQL的可拓展性

代码语言:javascript
复制
可扩展性:增加同等设备获得同等能力
1.拓展MySQL
  • 向上扩展:也称为垂直扩展,通过提升硬件内存cpu固态等获得性能提升
    • 优点:单台服务器比多台服务器更容易维护和开发,能显著节约开销。在单台服务器上恢复和备份应用同样很简单
    • 缺点:后期成本昂贵,会遇到瓶颈
  • 向外扩展:
    • 复制:把主库数据复制到备库用作读
    • 拆分:按功能查分不同数据放到不同节点
    • 数据分片:把数据按用户id或者其他字段分配到不同节点
  • 通过多实例扩展:部署多台MySQL
  • 通过集群扩展
  • 向内扩展

第十二章 高可用性

代码语言:javascript
复制
高可用性:衡量标准是每年的非宕机时间与总时间的比值,著名的5个9表示高可用性达到"99.999%",即是每年只允许5分钟的宕机时间.100%的高可用性是不可能达到的
1.实现高可用性
  • 提升平均失效时间(MTBF)
  • 降低平均恢复时间(MTTR)
2.高可用方案
  • 基于主从复制
  • 基于Galera协议:是一套基于同步复制的多主MySQL集群解决方案,使用简单,没有单点故障,可用性高,能很好保证业务不断增长时数据的安全和随时的扩展
  • 基于NDB引擎:一个集群存储引擎,类似于Oracle的RAC,但它是Share Nothing的架构,因此能提供更高级别的高可用性和可扩展性
  • 基于中间件/proxy
  • 基于共享存储
  • 基于主机高可用
3.故障转移和故障恢复
  • 使用备库,作为出现故障时切换的对象
  • 虚拟IP地址或者IP接管
    • 当MySQL对应IP失效时切换IP地址转换到另一台MySQL服务上.类似于集群方式做的负载均衡思想
  • 中间件解决方案:使用代理,端口转发,网络地址转换

第十三章 云端的MySQL

1.云
  • 优点
    • 云是一种将基础设施外包出去,无需自己管理的方法,你不需要寻找供应商购买硬件,也不需要维护和供应商之间的关系,更无须替换失效的硬盘驱动等
    • 云一般是按照即用即付的方式支付,可以把前期的大量资本支出转换为持续的运营成本
  • 缺点
    • 资源是共享并且不可预测的
    • 无法保证容量的可用性

第十四章 应用层优化

代码语言:javascript
复制
本章节本质上跟MySQL没有太大关系,只是想要告诉读者,优化不应该仅仅只在数据库,也需要从我们的应用层当中去考虑
  • 页面加载:分析页面资源的加载信息,优化耗时较大的资源的加载
  • 应用层:分析方法的执行执行时间,优化耗时比较大的方法
  • 缓存:Mybatis/hibernate的二级缓存、常用数据的预加载及redis缓存
  • DB层:分析慢SQL的执行计划并优化、分库分表策略、读写分离
  • 服务器硬件:网络带宽、服务器内存cup的升级

第十五章 备份与恢复

一.MySQL备份与恢复策略

1.逻辑备份与恢复
  • 转存成为INSERT语句,恢复时执行语句
  • 转存为特定分隔符进行分割的文本文件当中,按照CSV文件导入
2.物理备份
代码语言:javascript
复制
物理备份是根据不同的存储引擎存储在不同的文件夹下面
  • MyISAM存储引擎:存储在datadir目录,备份时只需要复制该文件夹即可
  • InnoDB存储引擎:存储在innodb_data_home_dir,innodb_data_file_path,innodb_log_group_home_dir,可以根据配置选择这三个目录文件下的其中一个,备份时可以直接复制,或者使用ibbackup软件进行备份
  • NDB Cluster存储引擎:物理备份文件分成了下面三种
    • 元数据(Metadata):包含所有数据库以及表的定义信息
    • 表数据(Table Tecords):保存实际数据的文件
    • 事务日志数据(Transaction Log):维持事务的一致性和完整性
    • 备份时只需要对应复制文件即可

MySQL用户工具

代码语言:javascript
复制
最后一章给大家推荐几款比较好用的MySQL用户工具
1.Induction
在这里插入图片描述
在这里插入图片描述

Induction是一款用于理解数据关系的开源管理工具,它可用来探索行/列,运行查询和数据可视化等方面。该工具支持多种数据库,包括PostgreSQL,MySQL,SQLite,Redis以及MongoDB。此外,Induction还可以通过编写添加其他新的适配器。

2.Pinba
在这里插入图片描述
在这里插入图片描述

Pinba 是一种MySQL存储引擎,用于PHP实时监控和数据服务器的MySQL只读接口。它整理并处理通过UDP发送的数据,并以可读的简单报告的形式统计显示多个PHP进程。为了获取下一代更为复杂的报告和统计数据,Pinba提供了原始数据的只读接口。

3.DB Ninja
在这里插入图片描述
在这里插入图片描述

DbNinja是一款先进的基于Web的MySQL数据库管理与开发应用程序。它是远程访问托管服务器的必然之选。DbNinja支持所有最新的功能,包括触发器、事件、视图、存储过程和外键等。此外,它还可以导入和备份数据、MySQL对象结构以及管理用户等。DbNinj的用户界面功能完备且清新美观,可安全地运用于任何浏览器及任何操作系统中。

4.DB Tools Manager
在这里插入图片描述
在这里插入图片描述

DBManager是一款功能强大的数据管理应用程序。作为最先进的应用程序,DBManager内置支持MySQL、PostgreSQL、Interbase/Firebird、 SQLite,DBF表、MSAccess,MSSQL服务器,Sybase,Oracle和ODBC数据库引擎等一些新特性。DBManager目前拥有个人和企业两个版本,用户可按需选择使用。

5.Dbeaver
在这里插入图片描述
在这里插入图片描述

DBeaver是一款免费的数据库管理应用程序,可运用于多种不同的引擎,包括MySQL,MSSQL,Oracle、SQLite、Sybase和Firebird等等。由Java编写而成,该应用程序适用于所有主流操作系统(Windows、Mac和Linux)。它能处理包括元数据编辑(表、列、键、索引)、自定义SQL执行、用户管理、多连接等在内的所有主要任务。

6.SqlWave
在这里插入图片描述
在这里插入图片描述

SQLWave是一种简单、快速且易用的MySQL客户端。用户可通过该工具轻松地连接到远程主机。SqlWave支持所有MySQL的最新版本,包括它用来管理数据库结构的所有最新功能,如工作表、视图、存储过程、函数、事件、外键和触发器等。

7.MyWebSQL
在这里插入图片描述
在这里插入图片描述

MyWebSQL主要用于管理基于Web的MySQL数据库。与桌面应用程序的借口工作流程相似,用户无需切换网页即可完成一些简单的操作。如果您正在操作桌面,只用登数据库,就可以管理您的数据库了。

8.Navicat
在这里插入图片描述
在这里插入图片描述

Navicat是MySQL和MariaDB数据库管理与开发理想的解决方案。它可同时在一个应用程序上连接MySQL和MariaDB数据库。这种兼容前端为数据库提供了一个直观而强大的图形界面管理、开发和维护功能,为初级MySQL和MariaDB开发人员和专业开发人员都提供了一组全面的开发工具。

9.SQLyog
在这里插入图片描述
在这里插入图片描述

SQLyog是一款功能最强大的MySQL管理工具,它综合了MySQL工作台、php MyAdmin和其他MySQL前端及MySQL GUI工具的特点。该款应用程序可以同时连接任意数量级的MySQL服务器,用于测试和生产。所有流程仅需登录MySQL root以收集数据,用户无需安装在MySQL服务器上。

10.Sequel Pro
在这里插入图片描述
在这里插入图片描述

Sequel Pro是基于MySQL数据库的一种快速易用的Mac数据库管理应用程序。用户可通过Sequel Pro在本地和远程服务器上直接访问MySQL数据库。不过,Sequel Pro的最新版本开始添加全屏支持内置。

11.HeidiSQL
在这里插入图片描述
在这里插入图片描述

HeidiSQL是一种专为web开发人员设计的有用且可靠的工具,可用于当前最受欢迎的MySQL服务器,微软SQL数据库和PostgreSQL。该工具可提供浏览和编辑数据、创建和编辑表格、视图、过程、触发器和日志安排等事件。此外,您还可以导出结构和数据至SQL文件、剪贴板或其他服务器。

12.MyDB Studio
在这里插入图片描述
在这里插入图片描述

MyDB Studio是一款免费的MySQL数据库管理器应用程序。该工具强大到您几乎可以获取到任何想要的功能,并能够连接到无限量级的数据库。通过创建、编辑或删除数据库、表格和记录,就可以备份/恢复并导出为多个格式。

13.SQL Lite Manger
在这里插入图片描述
在这里插入图片描述

SQL Lite Manager是一款基于web的开源应用程序,用于管理无服务器、零配置SQL Lite数据库。该程序是用PHP写成,除了记录和应用表格格上的每一步操作,还可以控制多个数据库。SQL Lite Manager可用于查询数据,将MySQL查询转化为兼容SQL Lite数据库,并能创建和编辑触发器。SQL Lite Manager有多种皮肤选项,是一个含现成语言文件的多语言资源。

14.Database Master
在这里插入图片描述
在这里插入图片描述

Database Master是一个现代的、强大的、直观且易用的数据库管理程序。它以一个一致而现代的界面适用于MongoDB、MySQL、PostgreSQL、FireBird、 SQL Lite、MS SQL Server、SQL Azure、Oracle、IBM DB2、IBM Informix、Netezza、Ingres以及EffiProz等数据库。Database Master简化了管理、查询、编辑、可视化、设计和报告数据库系统。用户可以通过ODBC与OleDB连接任何数据库系统,也可以访问MS Access,MS FoxPro Database、Dbase和XML文件。

15.Chive
在这里插入图片描述
在这里插入图片描述

Chive由PHP搭建而成,是一款基于web的开源MySQL管理应用程序。此款应用程式有一个内置的编辑器,当运行复杂的查询或易用的界面时,可用于快速浏览。

最后强烈推荐一款Navicat Premium

本书完结

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第十一章 MySQL的可拓展性
    • 1.拓展MySQL
    • 第十二章 高可用性
      • 1.实现高可用性
        • 2.高可用方案
          • 3.故障转移和故障恢复
          • 第十三章 云端的MySQL
            • 1.云
            • 第十四章 应用层优化
            • 第十五章 备份与恢复
              • 一.MySQL备份与恢复策略
                • 1.逻辑备份与恢复
                • 2.物理备份
                • 1.Induction
                • 2.Pinba
                • 3.DB Ninja
                • 4.DB Tools Manager
                • 5.Dbeaver
                • 6.SqlWave
                • 7.MyWebSQL
                • 8.Navicat
                • 9.SQLyog
                • 10.Sequel Pro
                • 11.HeidiSQL
                • 12.MyDB Studio
                • 13.SQL Lite Manger
                • 14.Database Master
                • 15.Chive
            • MySQL用户工具
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档