• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL 删除大表的性能问题解决方案

MySQL 删除大表的性能问题解决方案

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了生产问题解决方案表,问题解决方案,问题解决导学方案答案,问题解决方案模板,公司问题及解决方案等相关知识,希望本文的分享对您有所帮助
微博上讨论MySQL在删除大表engine=innodb(30G+)时,如何减少MySQL hang的时间,现做一下简单总结:

当buffer_pool很大的时候(30G+),由于删除表时,会遍历整个buffer pool来清理数据,会导致MySQL hang住,解决的办法是:
1、当innodb_file_per_table=0的时候,以上不是问题,因为采用共享表空间的时候,该表所占用的空间不会被删除,buffer pool中的相关页不会 被discard。
2、当innodb_file_per_table=1的时候,并且当buffer_pool比较大的时候,遍历整个buffer pool 需要很多的时间(table_cache 会被锁住,所有的DML操作被阻止)。

认识误区:
将innodb 表改为 myisam表,这个是没有效果的,该操作会删除旧表,建立新表,依然会遍历整个buffer_pool。

解决思路:
1、采用脚本形式,批量删除部分记录
2、可以再slave上进行操作,进行主备切换(成本高)
3、Percona 5.1.58以上版本都支持innodb_lazy_drop_table(bug不少,慎用)
4、与buffer pool无关,但是可以加快 删除数据文件的速度,同样能减少MySQL hang住的时间。即:对数据文件建立硬链接,(依赖原理:OS HARD LINK 当多个文件名同时指向同一个INODE时,这个INODE的引用数N>1, 删除其中任何一个文件名只是删除了一个指针而已,不会删除数据文件。当INODE的引用数N=1时, 删除文件需要去把这个文件相关的所有数据块清除,所以会比较耗时) </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL 删除大表的性能问题解决方案

相关文章

  • 2018-12-05MySQL学习笔记4:完整性约束限制字段
  • 2018-12-05关于mysql操作sql的小技巧
  • 2018-12-05mysql去重的两种方法实例详解
  • 2017-05-11Mysql导入导出工具Mysqldump和Source命令用法详解
  • 2018-12-05详解MySql插入数据成功但是报[Err] 1055错误如何解决
  • 2017-05-11Ubuntu与windows双系统下共用MySQL数据库的方法
  • 2018-12-05压缩技术给SQL Server备份文件瘦身
  • 2017-05-11MySQL错误ERROR 1615 解决方法
  • 2018-12-05在oracle 数据库查询的select 查询字段中关联其他表的方法
  • 2018-12-05MySQL 中group by的实现

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql下为数据库设置交叉权限的方法
    • SqlServer 2005 T-SQL Query 学习笔记(3)
    • mysql常用数据库查询
    • mysql binlog二进制日志详解
    • MySQL之-实现MSS主从复制(读写分离)的示例代码
    • mysql 5.7.14 安装配置方法图文详细教程_MySQL
    • MySQL内存使用之线程独享介绍
    • mysql数据库快速入门基础学习(经典教程)
    • sql 中 case when 语法使用方法
    • 史上最简单的MySQL教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有