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

如何理解MySQL中的截断

127次阅读
没有评论

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

这期内容当中丸趣 TV 小编将会给大家带来有关如何理解 MySQL 中的截断,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

MySQL 中的 undo 截断还是一个很不错的特性。这让我想起了很久以前看到一个诺大的 ibdata, 但是却拿它无能为力,想把它收缩唯一的办法就是重建或者重构数据。

  Oracle 用得久了,总会有一些想法,看起来很平常的技术怎么在 MySQL 中却无能为力。当然这个念头也有些日子了。

  MySQL 5.6 中把 undo 做了剥离,可以指定单独的 undo 表空间,但是要收缩阶段还是无能为力,这个也算是一个过渡的特性吧,到了 MySQL 5.7 中,这个功能就可以说是上了正道了,我们可以截断,化被动为主动,这种方式就很好。

  而如果要展望这个特性,我觉得还可以持续改进,就是可以在线修改,切换 undo 等。

  要实现这个阶段功能,其实还需要花点功夫,那就是在初始化的时候就完成这些基础配置,否则会收到下面这样有些模糊的提示信息。

2017-02-28 22:39:48 7fedca8127e0 InnoDB: Expected to open 1 undo tablespaces but was able
2017-02-28 22:39:48 7fedca8127e0 InnoDB: to find only 0 undo tablespaces.
2017-02-28 22:39:48 7fedca8127e0 InnoDB: Set the innodb_undo_tablespaces parameter to the
2017-02-28 22:39:48 7fedca8127e0 InnoDB: correct value and retry. Suggested value is 0 所以我们打算初始化一个全新的库来做一个简单的测试。

my.cnf 的内容如下,你可以自己根据需要指定也可以。

my.cnf
[client]
socket = /home/mysql/mysql.sock

[mysql]
socket = /home/mysql/mysql.sock
default-character-set = utf8

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /home/mysql
port = 3306
socket = /home/mysql/mysql.sock
pid-file = /home/mysql/mysql.pid
max_allowed_packet = 32M
ft_min_word_len = 4
event_scheduler = 1
explicit_defaults_for_timestamp=true
tmpdir = /dev/shm
character-set-server = utf8

#innodb_undo_directory=/data/undolog
innodb_undo_tablespaces=4
innodb_undo_logs=128
innodb_max_undo_log_size=200M
innodb_purge_rseg_truncate_frequency
innodb_undo_log_truncate=1
重点就是最后的几个参数了。

先初始化一下数据字典,

mysqld  –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/home/mysql 然后配置使得 MySQL 服务启动

service mysql start 打开文件目录,就会赫然看到下面的几个 undo 文件,因为参数

innodb_undo_tablespaces 为 4,所以会有 4 个文件。innodb_undo_logs 默认是 128 个,至少是 35 个,官网也有详细的解释。而 innodb_undo_directory 的目录则默认按照数据目录来取得,所以我索性去掉了。4 个 Undo 文件都是 10M,也就是初始大小。

drwxr-x— 2 mysql mysql  8192 Feb 28 23:09 performance_schema
drwxr-x— 2 mysql mysql  8192 Feb 28 23:09 sys
-rw-r—– 1 mysql mysql 10485760 Feb 28 23:09 undo001
-rw-r—– 1 mysql mysql 10485760 Feb 28 23:09 undo002
-rw-r—– 1 mysql mysql 10485760 Feb 28 23:09 undo003
-rw-r—– 1 mysql mysql 10485760 Feb 28 23:09 undo004 我们初始化数据,然后插入一些数据。

mysql create table test_undo(id int,name varchar(30));
mysql insert into test_undo values(1, a
mysql insert into test_undo values(2, b
insert 可以反复执行,数据就是指数级的增长,事务也会逐渐变大,大概在 200 万数据量的时候,undo 的分布如下:

-rw-r—– 1 mysql mysql 13631488 Feb 28 23:16 undo001
-rw-r—– 1 mysql mysql 22020096 Feb 28 23:16 undo002
-rw-r—– 1 mysql mysql 10485760 Feb 28 23:16 undo003
-rw-r—– 1 mysql mysql 10485760 Feb 28 23:16 undo004 数据在 1600 万左右的时候,undo 文件的大小如下:

-rw-r—– 1 mysql mysql  13631488 Feb 28 23:20 undo001
-rw-r—– 1 mysql mysql  22020096 Feb 28 23:20 undo002
-rw-r—– 1 mysql mysql 150994944 Feb 28 23:20 undo003
-rw-r—– 1 mysql mysql  75497472 Feb 28 23:20 undo004 这个时候我们开始测试一下截断的部分,和一个参数密切相关,那就是 innodb_purge_rseg_truncate_frequency,我们可以为了测试,适当设置小一些,能够马上看到效果,比如我设置为 20

mysql set global innodb_purge_rseg_truncate_frequency=20; 然后我继续开启一个很大的事务,插入千万数据,undo 的文件就会暴增,当然因为最大的事务占用了一个 undo 文件,那个文件还是会持续增大,尽管超过了设定的阈值。

-rw-r—– 1 mysql mysql  13631488 Feb 28 23:33 undo001
-rw-r—– 1 mysql mysql  22020096 Feb 28 23:33 undo002
-rw-r—– 1 mysql mysql 150994944 Feb 28 23:33 undo003
-rw-r—– 1 mysql mysql 293601280 Feb 28 23:33 undo004 然后我们使点小技巧,delete 几条数据,触发截断的临界点。

mysql delete from test_undo limit 10; 再次查看,undo 的文件就会收缩,当然你可以清晰的看到,不是所有的,因为和事务大小也有关系。

-rw-r—– 1 mysql mysql  13631488 Feb 28 23:34 undo001
-rw-r—– 1 mysql mysql  22020096 Feb 28 23:34 undo002
-rw-r—– 1 mysql mysql 150994944 Feb 28 23:34 undo003
-rw-r—– 1 mysql mysql  10485760 Feb 28 23:34 undo004

上述就是丸趣 TV 小编为大家分享的如何理解 MySQL 中的截断了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计3283字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 伊人成色综合网 | 男女下面一进一出好爽视频 | 成人h在线观看 | 鲁鲁鲁爽爽爽在线视频观看 | 门卫又粗又大又长好爽 | 天天干天天干天天干 | 成人性做爰aaa片免费看 | 四虎免费紧急入口观看 | 日本高清毛片视频在线看 | 撕开奶罩揉吮奶头高潮av | 亚洲av无码专区国产乱码4se | 亚洲av无一区二区三区久久 | 国产在线观看色 | 免费无码又爽又刺激软件下载直播 | 成人h片 | 亚洲一一在线 | 久久精品亚洲 | 99精品免费久久久久久久久日本 | 欧美不卡精品中文字幕日韩 | 欧美大尺度aaa级毛片 | 国产精品久久久久一区二区 | 曰韩无码二三区中文字幕 | 国产精品久久九九 | 欧美成人h亚洲综合在线观看 | 亚洲欧美熟妇综合久久久久 | 毛片免费观看成人 | 人与动人物xxxx毛片 | a天堂视频在线观看 | 中文字幕在线激情日韩一区 | 久久久久琪琪免费影院 | 蜜桃日本mv免费观看 | 久久久久精彩视频 | 日韩中文字幕网 | 亚洲欧美日韩一区在线观看 | 日本护士毛茸茸 | 日韩毛片欧美一级国产毛片 | 综合无码一区二区三区四区五区 | 伊人亚洲| 免费一级特黄特色大片∵黄 | 狠狠色狠狠色狠狠五月ady | 日本高清毛片中文视频 |