(四)SQL MODE变化和优化online操作.pdfVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(四)SQL MODE变化和优化online操作

(四)SQL MODE变化和优化online操作 本⽂是基于MySQL-5.7 .7-rc版本,未来可能 还会发⽣更多变化。 1、SQL MODE变化 a. 默认启⽤ STRICT_TRANS_TABLES 模式; b . 对 ONLY_FULL_GROUP_BY 模式实现了更 杂的特性⽀持,并且也被默认启⽤; c . 其他被默认启⽤的sq mode还有 NO_ENGINE_SUBSTITUTION ; iMySQL建议 对⼴⼤MySQL使⽤者⽽⾔,以往不是那么严格的模式还是很⽅便的,在5.7版本下可 能会觉得略为不适,慢慢习惯吧。⽐如向⼀个20字符长度的VARCHAR列写⼊30个字 符,在以前会⾃动截断并给个提⽰告警,⽽在5.7版本下,则直接抛出错误了。个⼈认 为这倒是⼀个好的做法,避免各种奇葩的写法。 新特性实践 -- 查看默认的 sql_mode [yejr@] select @@sql_mode; + | @@sql_mode | + | ONLY_FULL_G OUP_BY,ST ICT_T ANS_TABLES,NO_AUTO_C EATE_USE ,NO_EN + -- 插⼊50个字符 [yejr@] insert into t_char select 0, repeat(x,50); E O 1406 (22001): Data too long for column uname at row 1 -- 修改本 session 的 sql_mode [yejr@] set sql_mode = ONLY_FULL_G OUP_BY,NO_AUTO_C EA Query OK, 0 rows affected (0.00 sec) -- 去掉 ST ICT_T ANS_TABLES 模式后 [yejr@] select @@sql_mode; ++ | @@sql_mode | ++ | ONLY_FULL_G OUP_BY,NO_AUTO_C EATE_USE ,NO_ENGINE_SUBSTITUTION | ++ [yejr@] insert into t_char select 0, repeat(x,50); Query OK, 1 row affected, 1 warning (0.00 sec) -- 提示有告警信息 ecords: 1 Duplicates: 0 Warnings: 1 [yejr@] show warnings; ++++ | Level | Code | Message | ++++ | Warning | 1265 | Data truncated for column uname at row 1 | ++++ 因为 uname 字段的长度为 40 个字符。 2、优化online操作 例如修改buffer poo 、修改索引名 (⾮主键)、修改REPLICATION FILTER 、修改 MATER⽽⽆需关闭SLAVE线程 等众多特性。 可以在线修改buffer poo 对DBA来说实在太⽅便了,实例运⾏过程中可以动态调整, 避免事先分配不合理的情况,不过 innodb_buffer_poo _instances 不能修改,⽽且 在 innodb_buffer_poo _instances ⼤于 1 时,也不能将 buffer poo 调整到 1GB 以内,需 要稍加注意。 如果是加⼤buffer poo ,其过程⼤致是: 1、以innodb_buffer_pool_chunk_size为单位, 配新的内存pages; 2、扩展buffer pool的AHI(adaptive hash index)链表,将新 配的pages包含进 3、将新 配的pages添加到free list中; 如果是缩减buffer poo ,其过程则⼤致是: 1、重整buffer pool,准备回收pages; 2、以innodb_buffer_pool_chunk_size为单位,释放删除这些pages (这个过程会有 3、调整AHI链表,使⽤新的内存地址。 实际测试时,发现在线修改 buffer poo 的代价并不⼤,SQL命令提交完毕后都是瞬间 完成,⽽后台进程的耗时也并不太久。在⼀个并发128线程跑tpcc压测的环境中,将 buffer poo 从32G扩展到48G ,后台线程耗时 3秒,⽽从 48G 缩减回 32G 则耗时 18 秒,期间压测的事务未发⽣任何

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档