美文网首页
数据库-mysql

数据库-mysql

作者: 有你我就不孤单 | 来源:发表于2019-10-19 18:33 被阅读0次


官方资料

https://dev.mysql.com/doc/refman/8.0/en/

版本信息

1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。

2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。

3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。

4. MySQL Cluster CGE 高级集群版,需付费。

5. MySQL Workbench(GUITOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。

版本特性

功能

MySQL数据库从5.7.8版本开始,也提供了对JSON的支持。对比PG和mysql:

1. 在共有功能上,pg比mysql要快一些

2. pg比mysql多一些操作json的函数

3. pg自定义函数功能比较强,针对json操作可以较好地进行模块化开发,不一定要全部揉在一个sql里

4. pg支持函数索引,这样可以对json中的某个值建立索引而不用在表上加减字段

选择:

如果对json有频繁的操作,而且需要复杂的操作,现阶段来说pg是你唯一的选择

如果对json操作功能性要求比较少,并且对其操作的强度也不高,建议选择最熟悉的数据库

一切都是发展的,说不定未来mysql对json的支持会越来越好,所以如果没必要,选择自己/团队最熟悉的数据库

pg的json和jsonb

从PostgreSQL 9.3开始,json就成了postgres里的一种数据类型。jsonb格式是json的二进制形式,二者的区别在于json写入快,读取慢,jsonb写入慢,读取快,但在操作上,二者是没有区别的

(1)json存储快,使用慢; 存的时候不做处理,使用时再解析

(2)jsonb存储稍慢,存储时就做了解析,使用时速度较快

(3)两者的部分函数很相似,稍有区别

generate column, generated column是MySQL 5.7引入的新特性,所谓generated column,就是数据库中这一列由其他列计算而得。

性能 

在MySQL 5.7中,性能相关的改进非常多,包括临时表相关的性能改进、只读事务的性能优化、连接建立速度的优化和复制性能的改进。 

临时表的性能改进 

MySQL 5.7 为了提高临时表相关的性能,对临时表相关的部分进行了大幅修改,包括引入新的临时表空间;对于临时表的DDL,不持久化相关表定义;对于临时表的DML,不写redo,关闭change buffer等。所有临时表的改动,都基于以下两个事实 : 

1.临时表只在当前会话中可见 

2.临时表的生命周期是当前连接(MySQL宕机或重启,则当前连接结束) 

也就是说,对于临时表的操作,不需要其他数据一样严格地进行一致性保证。通过不持久化元信息,避免写redo等方式,减少临时表操作的IO,以提高临时表操作的性能。

可用性 

在线设置 复制的过滤规则 不再需要重启MySQL,只需要停止SQL thread,修改完成以后,启动SQL thread 

在线修改buffer pool的大小 

Online DDL MySQL 5.7支持重命名索引和修改varchar的大小,这两项操作在之前的版本中,都需要重建索引或表 

ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(255);

在线开启GTID ,在之前的版本中,由于不支持在线开启GTID,用户如果希望将低版本的数据库升级到支持GTID的数据库版本,需要先关闭数据库,再以GTID模式启动,所以导致升级起来特别麻烦。MySQL 5.7以后,这个问题不复存在

高可用方案

点击链接进入:高可用方案

mysql常见命令

常见命令

索引

索引

分布式事务

分布式事务

分布式数据库中间件

分布式数据库中间件

参数理解

系统默认参数

数据库版本:mysql Ver 14.14 Distrib 5.7.27-30, for Linux (x86_64) using 6.2

事务隔离级别

tx_isolation | REPEATABLE-READ

transaction_isolation | REPEATABLE-READ

线程池大小

| thread_pool_size | 2 |

| thread_pool_stall_limit                                  | 500 

| thread_pool_high_prio_tickets | 4294967295 |

| thread_pool_idle_timeout                                | 60                                                                                                                                                                                      | thread_pool_max_threads                                  | 100000   

binlog三种复制方式

二进制binlog的格式有三种:

statement:基于sql的binlog,每条修改数据的sql都会保存到binlog里。

row:基于行级别,记录每一行数据的变化,也就是将每一行数据的变化都记录到binlog里,记录非常详细。

mixed:混合statement和row模式。

WAL

WAL介绍

相关文章

网友评论

      本文标题:数据库-mysql

      本文链接:https://www.haomeiwen.com/subject/ajtsmctx.html