官方资料
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中的某个值建立索引而不用在表上加减字段
![](https://img.haomeiwen.com/i12464164/30a18d530420f559.png)
选择:
如果对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模式。
网友评论