一、关于MySQL发行版介绍:

1、 MySQL官方发行版

MySQL是最流行的数据库,主要特点:

简单:MySQL使用很简单,可以无师自通地参照文档安装运行和使用MySQL,几乎没有什么门槛。

开源:流行和免费。

支持多种存储引擎:MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。

支持高可用架构:MySQL自身提供的replication(主从复制)功能可以实现MySQL数据的实时备份。

2、Mysql的存储引擎

Mysql最常用的有两个存储引擎:MyISAM和 InnoDB。

MySQL4和5使用默认的MyISAM存储引擎。

MYSQL5.5开始,MySQL已将默认存储引擎从MyISAM更改为InnoDB。

两种存储引擎的大致区别表现在:

1)InnoDB支持事务,MyISAM不支持。事务是一种高级的处理方式,如在一些列增删改中出错还可以回滚还原,而采用MyISAM存储引擎就不可以;

2)MyISAM查询数据相对较快,适合大量的select ,可以全文索引,InnoDB适合频繁修改以及涉及到安全性较高的应用;

3)InnoDB支持外键,支持行级锁,MyISAM不支持;

4)MyISAM索引和数据是分开的,而且其索引是压缩的,缓存在内存的是索引,不是数据。而InnoDB缓存在内存的是数据,相对来说,服务器内存越大,InnoDB发挥的优势越大。

5)InnoDB可支持大并发请求,适合大量insert、update操作。

**************关键点**************:

关于MyISAM与InnoDB选择使用:

1)如果应用程序一定要使用事务,毫无疑问要选择INNODB引擎。

2)如果应用程序对查询性能要求较高,就要使用MyISAM了。MyISAM拥有全文索引的功能,这可以极大地优化查询的效率。

************************************

3、Percona  Server分支(另一款MySQL版本)

Percona Server由领先的MySQL咨询公司Percona发布。

Percona Server是一款独立的数据库产品,其可以完全与MySQL兼容,可以在不更改代码的情况了下将存储引擎更换成XtraDB。是最接近官方MySQL Enterprise发行版的版本。

Percona提供了高性能XtraDB引擎,还提供PXC高可用解决方案,并且附带了percona-toolkit等DBA管理工具箱。

4、MariaDB(另一款MySQL版本)

历史:MySQL创始人将MySQL卖给Oracle后,重新开发出MariaDB;

MariaDB由MySQL的创始人开发,MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

MariaDB提供了MySQL提供的标准存储引擎,即MyISAM和InnoDB,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。

5、如何选择:

线上业务系统首选Percona分支,其次是MYSQL版本,最后是MariaDB。

6、如何在mysql数据库中查看存储引擎是什么类型?

show engines;           #查看存储引擎

存储引擎目录其实对应mysql存放数据库文件内

show table status from xxx where name='xxx'; 查看数据库中某个表属性
eg:
mysql> show table status from mysql where name='engine_cost';
+-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+--------------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+--------------------+---------+
| engine_cost | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 0 | 0 | NULL | 2020-01-10 23:11:39 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | |
+-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+--------------------+---------+
1 row in set (0.00 sec)

mysql> show table status from mysql where name='engine_cost' \G;           #\G用列表形式显示
*************************** 1. row ***************************
Name: engine_cost
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 2
Avg_row_length: 8192
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: NULL
Create_time: 2020-01-10 23:11:39
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options: stats_persistent=0
Comment:
1 row in set (0.00 sec)

ERROR:
No query specified

.frm #表结构定义文件(表示“表”的文件结构信息:如字段、存储引擎、创建、更新访问时间等信息)

如果你数据文件是以InnoDB形式存储,那ibdata1文件(二进制文件)中会存储数据文件,ib_logfile0 ib_logfile1会存储InnoDB的事务文件(操作日志信息)

ib_logfile0 ib_logfile1两个文件属于InnoDB存储下的事务文件:
当数据库出现宕机情况时,数据库会根据这两个文件内的操作记录,回滚到最近的记录,保证数据一致性。

ib_logfile0 ib_logfile1的记录方式为:
先在ib_logfile0下写入日志,当ib_logfile0写满后再写入ib_logfile1,当ib_logfile1写满后;会对ib_logfile0再次写入,这是对ib_logfile0中的日志记录进行覆盖。如此循环重复。

ib_logfile0 ib_logfile1 文件大小可以设置,最大为512G,一般情况下,最多设置为2-4G左右。

在一些线上业务时,可以对ib_logfile0 ib_logfile1进行镜像备份。
对此可衍生InnoDB存储引起机制下,若需要进行备份,
1、需要对各数据库的库结构文件(.frm后缀文件)进行备份,
2、需要对ibdata1文件进行备份,
3、对ib_logfile0和ib_logfile1进行备份。
这三种文件备份完后,拷贝至其他服务器上是可以进行完整恢复的。

MyISAM 存储类型组织形式:每个数据表都有.frm、.MYD、.MYI三个文件形式进行保存。
eg:
user.frm #表结构文件
user.MYD #数据文件
user.MYI #数据索引文件

MySQL版本浅介的更多相关文章

  1. MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等

    MYSQL优化浅谈 msyql是开发常用的关系型数据库,快速.稳定.开源等优点就不说了. 个人认为,项目上线,标志着一个项目真正的开始.从运维,到反馈,到再分析,再版本迭代,再优化… 这是一个漫长且考 ...

  2. Backbone.js源码浅介

    终于看到一个只有一千多行的js框架了,于是抱着一定可以看懂他的逻辑的心态,查看了他的整个源码,进去之后才发现看明白怎么用容易,看懂怎么写的就难了,于是乎有了这篇博客的标题:浅介,只能粗浅的介绍下Bac ...

  3. 关于如何查看mysql版本及其端口号

    关于如何查看MySQL版本: 方法一: 进入mysql cmd, status; 1 status; 将显示当前mysql的version的各种信息. 方法二: 还是在mysql的cmd下,输入: s ...

  4. Centos 升级MySQL版本或者Yum安装Mysql5.6

    Centos 升级MySQL版本或者Yum安装Mysql5.6 1.从MySQL Yum仓库下载最新的rpm文件:http://dev.mysql.com/downloads/repo/yum/Cen ...

  5. xampp版本和具体的php,mysql版本的对应

    在国外网上查找到具体的xampp版本与php,mysql版本的对应关系,特此记录.以便需要的人使用.原文链接如下: http://code.stephenmorley.org/articles/xam ...

  6. CentOS6.x升级MySQL版本5.1到5.6

    CentOS6.x升级MySQL版本5.1到5.6 分类: Web MySQL 2014-08-04 11:22 2813人阅读 评论(1) 收藏 举报 mysql云服务器升级centos6 有一些虚 ...

  7. 升级 phpStudy 中 MySQL 版本至 5.7.17

      由于本地用的集成环境是 phpStudy 2016,没有找到升级 MySQL 版本的选项,所以自己升级一下. 从官网上下载高版本的 MySQL :https://dev.mysql.com/dow ...

  8. 51ak带你看MYSQL5.7源码3:修改代码实现你的第一个Mysql版本

    从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...

  9. MYSQL.版本查看-LINUX

    MYSQL.版本查看-LINUX 方式1: 不需登录mysql,登录Linux服务后,执行如下指令: # mysql -V 注意: 那个是大写的V,如果使用小写的v,在root没有设置密码的情况下,就 ...

随机推荐

  1. Tom_No_01 IDEA tomcat 源码环境搭建

    1.下载源码 apache-tomcat-8.5.50-src 2.下载源码 放D盘,解压后根目录新建pom.xml和catalina-home pom.xml文件中内容为 <?xml vers ...

  2. 添加数据时报错:An error occurred while updating the entries. See the inner exception for detail。

    场景:前几天在项目开发时,有个bug经常出现,今天花了一整天,终于把它解决了.记录一下解决流程. 解决方法: 主要报错的地方在添加的部分: 1 foreach (var requestProperty ...

  3. centos 服务

    1,开机开启服务 #  chkconfig vsftpd on

  4. Linux 内核的代码仓库太不一样了,光克隆都让我挠头,克隆后居然还丢文件,你肯定也会遇到!!!

    一个肯定能让你节省几个小时的小知识 大家好,我是 小猿来也,一个人称撸(划)码(水)小能手的程序猿. 最近一段时间,每次经过旁边大佬工位,总是发现他在快速的切屏,不知道在搞什么?难道他发现了快乐星球? ...

  5. MobSF移动安全扫描平台本地化部署与简单汉化

    在之前的文章MobSF移动安全扫描平台环境搭建与试用中,我们用docker进行了搭建,那么我们如何在本地直接搭建呢,其实也是很简单的. 本地化部署 我们在本地安装 其实是很简单的,里面有两个文件,在不 ...

  6. Spring Cloud Aliaba - Ribbon

    Ribbon(有关介绍见RestTemplate末尾) Ribbon负载均衡实现策略 Ribbon负载均衡实现策略通过接口IRule进行实现,默认使用ZoneAvoidanceRule规则进行负载均衡 ...

  7. iptables 及容器网络分析

    本文独立博客阅读地址:https://ryan4yin.space/posts/iptables-and-container-networks/ 本文仅针对 ipv4 网络 iptables 提供了包 ...

  8. OpenResty Lua钩子调用完整流程

    前面一篇文章介绍了Openresty Lua协程调度机制,主要关心的是核心调度函数run_thread()内部发生的事情,而对于外部的事情我们并没有涉及.本篇作为其姊妹篇,准备补上剩余的部分.本篇将通 ...

  9. rancher清理主机脚本

    #!/bin/bash #From:rancher #date:2019-10-18 #admin:jarno # 停止服务 systemctl disable kubelet.service sys ...

  10. Semi-automation Script Based on Sleep

    The following script auto login to server 49, send 2 commands and exit from the server. Create a aut ...