mysql清除表空间导入_MySQL 清除表空间碎片
碎片产生的原因
(1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大;
(2)当执行插入操作时,MySQL会尝试使用空白空间,但如果某个空白空间一直没有被大小合适的数据占用,仍然无法将其彻底占用,就形成了碎片;
(3)当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写入的区域中处于峰值位置的部分;
例如:
一个表有1万行,每行10字节,会占用10万字节存储空间,执行删除操作,只留一行,实际内容只剩下10字节,但MySQL在读取时,仍看做是10万字节的表进行处理,所以,碎片越多,就会越来越影响查询性能。
查看表碎片大小
(1)查看某个表的碎片大小
mysql> SHOW TABLE STATUS LIKE '表名';
结果中'Data_free'列的值就是碎片大小
(2)列出所有已经产生碎片的表
mysql> select table_schema db, table_name, data_free, engine from information_schema.tables where table_schema not in ('information_schema', 'mysql') and data_free > 0;
清除表碎片
(1)MyISAM表
mysql> optimize table 表名
(2)InnoDB表
mysql> alter table 表名 engine=InnoDB
建议
清除碎片操作会暂时锁表,数据量越大,耗费的时间越长,可以做个脚本,定定期检查mysql中 information_schema.TABLES字段,查看 DATA_FREE 字段,大于0话,就表示有碎片,例如每周三凌晨,检查DATA_FREE字段,大于自己认为的警戒值的话,就清理一次。
mysql清除表空间导入_MySQL 清除表空间碎片相关推荐
- win10误删的注册表能还原吗_win10注册表怎么导入 win10注册表误删除怎么恢复
注册表是系统的重要数据组件,包含有系统中的各种关键信息和应用,有些用户不太注重注册表,只有等到 win10注册表怎么导入: 1.首先在登录win10系统打开注册表,在打开的注册表编辑器中点击文件--导 ...
- mysql表空间权限_MySQL InnoDB表空间加密示例详解
前言 从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密.该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系 ...
- mysql建表的规则_MYSQL建表规则 - Love彼岸花开的个人空间 - OSCHINA - 中文开源技术交流社区...
建立表规约 [强制]表名.字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只 出现数字.数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑. 说明:MySQL ...
- mysql多表连接 索引_MySQL多表查询之外键、表连接、子查询、索引
一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, ...
- mysql多表查询书籍_MySQL多表查询及子查询
1. MySQL数据库执行查询操作时的查询流程: 请求-->查询缓存 请求-->查询缓存-->解析器-->预处理器-->优化器-->查询执行引擎-->存储引擎 ...
- mysql取出数据外键_mysql数据表有外键,应注意的几点(目前学习所获得的经验)...
mysql : 1.有做外键的表子表和父表的引擎要一致才能添加数据:否则报外键约束错误 2.数据 类型要一致,不然添加补了 外键: 3.InnoDB和 myisam的区别(来源:PHP100中文网) ...
- mysql 修复表 阿里云_MySql数据表修复方法-阿里云开发者社区
mysqld进程在一个写入当中被杀死.计算机的意外关闭(例如,如果计算机掉电).一个硬件错误这章描述如何检查和处理在MySQL数据库中的数据损坏.如果你的表损坏很多,你应该尝试找出其原因!见G.1 调 ...
- mysql 单表多级查询_mysql单表与多表查询
单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数据1[, ..., 数据n])[, ... ...
- mysql多表查询练习_MySQL多表查询综合练习答案
一.综合练习 1.1 init.sql文件内容 /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Serv ...
最新文章
- java 类隔离_微服务架构中zuul的两种隔离机制实验
- linux消息通信无法接收,进程间通信:消息队列有关问题:进程1接收不到进程2的消息...
- 面试官:说说你知道的几种负载均衡分类
- mysql触发器trigger
- python列表解析
- linux系统怎么用wifi,【教程】Wii安装运行可用WIFI的Linux系统全攻略
- BZOJ4155 : [Ipsc2015]Humble Captains
- linux ubantu扩展空间,ubuntu 扩展存储空间
- python-random种子
- python怎么做软件程序_Revit二次开发python怎么做?人工智能python语言在BIM软件高效建模的运用尝试...
- 2天驾驭div+css_老婆竟然只知道几个css伪类,不行得惩罚她了
- add php support,WordPress add_theme_support() 函数详解
- 电脑屏幕总是晚上定时开启护眼模式,变成黄色?教你这招解决它
- 几分钟来了解下什么是嵌入式开发?
- 3250灵魂附体?诺基亚PureView概念机809
- 基于SVM算法的男女生分类器
- Groovy Script 获取当前时间函数
- Android ViewFlipper 使用
- java 二进制 2个字节 高位 低位_高位字节、低位字节
- Android学习之利用Intent传递数据