在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

MySQL5.7新特性有哪些

154次阅读
没有评论

共计 5727 个字符,预计需要花费 15 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 MySQL5.7 新特性有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

6.1   优化 (工具方面) 增强
  5.7 版本中如果一个会话正在执行 sql,且该 sql 是支持 explain 的,那么我们可以通过指定会话 id,查看该 sql 的执行计划。

EXPLAIN [options] FOR CONNECTION connection_id

该功能可以在一个会话里面查看另外一个会话中正在执行的长查询。

mysql show processlist;

+—-+————-+—————–+——+———+——+——————————————————–+——————+

| Id | User        | Host            | db  | Command | Time | State                                                  | Info  |

+—-+————-+—————–+——+———+——+——————————————————–+——————+

| 1  | system user |  | NULL | Connect | 78  | Connecting to master  | NULL  |

| 2  | system user |       | NULL | Connect | 78   | Slave has read all relay log; waiting for more updates | NULL    |

| 3  | system user |       | NULL | Connect | 78  | Waiting for an event from Coordinator    | NULL  |

| 4  | system user |     | NULL | Connect | 78  | Waiting for an event from Coordinator  | NULL  |

| 5  | system user |         | NULL | Connect | 78  | Waiting for an event from Coordinator  | NULL  |

| 6  | system user |     | NULL | Connect | 78  | Waiting for an event from Coordinator      | NULL  |

| 8  | root        | localhost:47896 | NULL | Query  | 0    | starting       | show processlist |

| 9  | root        | localhost:47897 | NULL | Query  | 3    | User sleep  | select sleep(10) |

+—-+————-+—————–+——+———+——+——————————————————–+——————+

8 rows in set (0.00 sec)

mysql explain FOR CONNECTION  9;

+—-+————-+——-+————+——+—————+——+———+——+——+———-+—————-+

| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |

+—-+————-+——-+————+——+—————+——+———+——+——+———-+—————-+

| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | No tables used |

+—-+————-+——-+————+——+—————+——+———+——+——+———-+—————-+

1 row in set (0.00 sec)

6.2 hint 功能增强
  相比于 MySQL5.6 版本的 hint 主要是 index 级别的 hint 和控制表 join 顺序的 hint,5.7.7 之后,MySQL 增加了优化器 hint, 来控制 sql 执行的方式,因为目前 MySQL 支持 nest loop join,故暂时无 hint 来修改 sql 的 join 方式。熟悉 Oracle 的朋友是否会发现 MySQL 和 Oracle 在功能上越来越近了。话说回来 5.7 的 hint (先别和 index hint 比较) 的用法,和 oracle 的类似: 

SELECT /*+ NO_RANGE_OPTIMIZATION(t3 PRIMARY, f2_idx) */ f1 FROM t3 WHERE f1 30 AND f1

SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE …;

SELECT /*+ NO_ICP(t1, t2) */ * FROM t1 INNER JOIN t2 WHERE …;

SELECT /*+ SEMIJOIN(FIRSTMATCH, LOOSESCAN) */ * FROM t1 …;

EXPLAIN SELECT /*+ NO_ICP(t1) */ * FROM t1 WHERE …

优化器级别的 hint 分四种类型  

Global: The hint affects the entire statement

Query block: The hint affects a particular query block within a statement,什么是 query block

(SELECT …) UNION (SELECT /*+ … */ …) – 后面的括号里面的称为 query block。

Table-level: The hint affects a particular table within a query block

Index-level: The hint affects a particular index within a table

6.3 触发器功能增强
 5.7 版本之前一个表 对于每种 action(INSERT,UPDATE, DELETE) 和时机(BEFORE or AFTER) 只能支持一种类型的触发器。新版本可以针对同一个 action 支持多个触发器。

6.4 syslog 功能
  之前的版本,*nix 系统上的 MySQL 支持将错误日志发送到 syslog 是通过 mysqld_safe 捕获错误输出然后传递到 syslog 来实现的。新的版本原生支持将错误日志输出到 syslog, 且适用于 windows 系统,只需要通过简单的参数(log_syslog 等) 配置即可。参考 官方文档
  MySQL 支持–syslog 选项,可将在交互式模式下执行过的命令输出到 syslog 中(*nix 系统下一般是.mysql_history)。对于匹配“ignore”过滤规则(可通过 –histignore 选项或者 MYSQL_HISTIGNORE 环境变量进行设置)的语句不会被记入。关于 mysql 客户端的日志使用参见:官方文档
6.5 虚拟列
在 MySQL 5.7 中,支持两种 Generated Column,
1 Virtual Generated Column : 只将 Generated Column 保存在数据字典中表的元数据,每次读取该列时进行计算,并不会将这一列数据持久化到磁盘上;
注意:MySQL 5.7.8 以前 虚拟列字段不支持创建索引。5.7.8 之后 Innodb 支持在虚拟列创建辅助索引。
2 Stored Generated Column : 将 Column 持久化到存储,会占用一定的存储空间。与 Virtual Column 相比并没有明显的优势,因此,MySQL 5.7 中,不指定 Generated Column 的类型,默认是 Virtual Column。
创建虚拟列语法:

col_name data_type [GENERATED ALWAYS] AS (expression)

 [VIRTUAL | STORED] [UNIQUE [KEY]] [COMMENT comment]

 [[NOT] NULL] [[PRIMARY] KEY]

具体的例子

CREATE TABLE triangle (

 id int(10) not null primary key auto_increment,

 sidea DOUBLE,

 sideb DOUBLE,

 sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))

);

INSERT INTO triangle (sidea, sideb) VALUES(1,1),(3,4),(6,8),(12,16);

mysql select * from  triangle;

+—-+——-+——-+——————–+

| id | sidea | sideb | sidec   |

+—-+——-+——-+——————–+

| 1  | 1    | 1  | 1.4142135623730951 |

| 2  | 3    | 4  | 5      |

| 3  | 6     | 8  | 10  |

| 4  | 12    | 16  | 20  |

+—-+——-+——-+——————–+

4 rows in set (0.00 sec)

mysql explain select * from  triangle where sidec

+—-+————-+———-+————+——+—————+——+———+——+——+———-+————-+

| id | select_type | table    | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra       |

+—-+————-+———-+————+——+—————+——+———+——+——+———-+————-+

| 1  | SIMPLE      | triangle | NULL      | ALL  | NULL          | NULL | NULL    | NULL | 4    | 33.33 | Using where |

+—-+————-+———-+————+——+—————+——+———+——+——+———-+————-+

1 row in set, 1 warning (0.00 sec)

mysql alter table triangle add key idx_sidec(sidec);

Query OK, 0 rows affected (0.03 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql explain select * from  triangle where sidec

+—-+————-+———-+————+——-+—————+———–+———+——+——+———-+————-+

| id | select_type | table    | partitions | type | possible_keys | key       | key_len | ref  | rows | filtered | Extra |

+—-+————-+———-+————+——-+—————+———–+———+——+——+———-+————-+

| 1  | SIMPLE      | triangle | NULL       | range | idx_sidec  | idx_sidec | 9       | NULL | 1  | 100.00  | Using where |

+—-+————-+———-+————+——-+—————+———–+———+——+——+———-+————-+

1 row in set, 1 warning (0.00 sec)

看到这个例子, 熟悉 oracle 的朋友可能会和函数索引作比较,两者比较类似. 使用虚拟列达到函数索引或者解决业务上的设计缺陷,但是个人不建议使用类似的功能,因为虚拟列在一定程度上也会给后期运维带来潜在的风险和复杂度。网络上的例子基本都是使用虚拟列解决业务逻辑上的问题,违背了数据库只存储数据的初衷,思考一下 MVC 框架的基本逻辑, 业务逻辑要放到 C 层或者 V 层,M 层只存放数据即可。

以上是“MySQL5.7 新特性有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计5727字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 秋霞鲁丝片一区二区三区 | 久久月 | 麻豆国产原创视频在线播放 | 国产成人h片视频在线观看 国产成人h综合亚洲欧美在线 | 波多野结衣50连登视频 | 亚洲av无码国产剧情 | 亚洲精品午夜aaa级久久久久 | 91热爆在线| 精品国产品香蕉在线观看75 | 黄页网站视频 | 国产丰满老熟女重口对白 | 国产成人亚洲精品无码车a 国产成人亚洲精品无码影院bt | 日本高清视频一区 | 一二三四视频6在线观看 | 99久久免费国产精精品 | 无套内谢少妇毛片aaaa片免费 | 国产精品无码av一区二区三区 | 国产自在自线午夜精品 | 成人黄性视频 | 亚洲国产精品久久久久666 | 精品国产一区二区三区av性色 | 成年人视频在线免费播放 | 亚洲国产无套无码av电影 | 亚洲五月综合缴情婷婷 | 婷婷五月综合激情 | 国产亚洲成av人片在线观黄桃 | 精品欧美一区二区三区在线观看 | 国产成人精品亚洲日本在线观看 | 久久人人爽人人人人片 | 国产免费无码一区二区三区 | 天无日天天射天天视 | 四虎影在永久在线观看 | 午夜伦情电午夜伦情电影 | 亚洲国产精品嫩草影院 | 特级毛片a级毛片100免费播放 | 人人草影院 | 亚洲综合成人网在线观看 | 亚洲色中文字幕无码av | 久久婷婷五月综合色高清 | 久久无码精品一区二区三区 | 福利视频在线免费观看 |