mysql数据库怎么收缩 mysql设置数据库大小

mysql数据库存储空间与数据大小不一致 阿里云RDS服务器报硬盘磁盘空间不足(100G的磁盘空间),登录后台查看,使用了130G,使用 SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size' FROM INFORMATION_SCHEMA.FILES order by TOTAL_EXTENTS DESC 查看,只使用了60G左右 。那么还有70G是怎么用了呢?
查看问题:
查询 information_schema.innodb_trx,看是哪些语句导致的 。
原因:
ibdata文件很大 , MySQL实例可能会 由于长时间不结束的查询导致 ibdata1 文件过大且无法收缩,导致实例空间满 , 为避免数据丢失,RDS会对实例进行自动锁定 , 磁盘锁定之后,将无法进行写入操作
解决方案:
重启实例即可
linux下mysql的drop table命令不能把表和相关存储信息都删除干净,怎么弄使用OPTIMIZE TABLE语句可以 。
OPTIMIZE TABLE语法
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改 , 则应使用OPTIMIZE TABLE 。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置 。您可以使用OPTIMIZE TABLE来重新利用未使用的空间,并整理数据文件的碎片 。
在多数的设置中,您根本不需要运行OPTIMIZE TABLE 。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次即可 , 只对特定的表运行 。
OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用 。
对于MyISAM表,OPTIMIZE TABLE按如下方式操作:
1.如果表已经删除或分解了行,则修复表 。
2.如果未对索引页进行分类,则进行分类 。
3.如果表的统计数据没有更新(并且通过对索引进行分类不能实现修复),则进行更新 。
对于BDB表,OPTIMIZE TABLE目前被映射到ANALYZE TABLE上 。对于InnoDB表,OPTIMIZE TABLE被映射到ALTER TABLE上 , 这会重建表 。重建操作能更新索引统计数据并释放成簇索引中的未使用的空间 。
要重新使用未使用的空间并减小文件的尺寸,则使用OPTIMIZE TABLE语句或myisamchk应用程序重新编排表 。OPTIMIZE TABLE更简便,但是myisamchk速度更快 。
如何压缩Mysql数据库压缩表从名字上来看,简单理解为压缩后的表,也就是把原始表根据一定的压缩算法按照一定的压缩比率压缩后生成的表 。
1.1 压缩能力强的产品
表压缩后从磁盘占用上看要比原始表要小很多 。如果mysql数据库怎么收缩你熟悉列式数据库,那对这个概念一定不陌生 。比如,基于 PostgreSQL 的列式数据库 Greenplum;早期基于 MySQL 的列式数据库 inforbright;或者 Percona 的产品 tokudb 等,都是有压缩能力非常强的数据库产品 。
1.2 为什么要用压缩表?
情景一mysql数据库怎么收缩:磁盘大小为 1T , 不算其他的空间占用,只能存放 10 张 100G 大小的表 。如果这些表以一定的比率压缩后,比如每张表从 100G 压缩到 10G,那同样的磁盘可以存放 100 张表,表的容量是原来的 10 倍 。情景二:默认 MySQL 页大小 16K,而 OS 文件系统一般块大小为 4K,所以在 MySQL 在刷脏页的过程中 , 有一定的概率出现页没写全而导致数据坏掉的情形 。比如 16K 的页写mysql数据库怎么收缩了 12K , 剩下 4K 没写成功,导致 MySQL 页数据损坏 。这个时候就算通过 Redo Log 也恢复不mysql数据库怎么收缩了,因为几乎有所有的关系数据库采用的 Redo Log 都记录了数据页的偏移量,此时就算通过 Redo Log 恢复后,数据也是错误的 。所以 MySQL 在刷脏数据之前 , 会把这部分数据先写入共享表空间里的 DOUBLE WRITE BUFFER 区域来避免这种异常 。此时如果 MySQL 采用压缩表 , 并且每张表页大小和磁盘块大小一致,比如也是 4K,那 DOUBLE WRITE BUFFER 就可以不需要 , 这部分开销就可以规避掉了 。查看文件系统的块大?。?
root@ytt-pc:/home/ytt#tune2fs -l /dev/mapper/ytt--pc--vg-root| grep -i 'block size'Block size:4096
1.3 压缩表的优势
压缩表的优点非常明显,占用磁盘空间小mysql数据库怎么收缩!由于占用空间小,从磁盘置换到内存以及之后经过网络传输都非常节省资源 。
简单来讲:节省磁盘 IO,减少网络 IO 。
1.4 压缩表的缺陷
当然压缩表也有缺点,压缩表的写入(INSERT,UPDATE,DELETE)比普通表要消耗更多的 CPU 资源 。
压缩表的写入涉及到解压数据 , 更新数据,再压缩数据,比普通表多了解压和再压缩两个步骤,压缩和解压缩需要消耗一定的 CPU 资源 。所以需要选择一个比较优化的压缩算法 。
1.5 MySQL 支持的压缩算法
这块是 MySQL 所有涉及到压缩的基础 , 不仅仅用于压缩表,也用于其它地方 。比如客户端请求到 MySQL 服务端的数据压缩;主从之间的压缩传输;利用克隆插件来复制数据库操作的压缩传输等等 。
从下面结果可以看到 MySQL 支持的压缩算法为 zlib 和 zstd,MySQL 默认压缩算法为 zlib , 当然你也可以选择非 zlib 算法,比如 zstd 。至于哪种压缩算法最优,暂时没办法简单量化,依赖表中的数据分布或者业务请求 。
怎么用Mysql操作数据库?方法如下:
1、首先打开Mysql命令行编辑器,连接Mysql数据库;
2、使用所要操作mysql数据库怎么收缩的数据库 , 先显示一下数据库中mysql数据库怎么收缩的表;
3、显示一下表结构,mysql数据库怎么收缩了解一下表中的列;
4、向表插入数据 , insert into 表名 (列名) values (值);
5、查询表可以看到所插入的数据,select * from 表名;
6、可以再插入一个数据,显示一下 。
扩展资料:
MySQL是一个关系型数据库管理系统 , 由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品 。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System , 关系数据库管理系统) 应用软件 。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加mysql数据库怎么收缩了速度并提高了灵活性 。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言 。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库 。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境 。
与其他的大型数据库,例如 Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度 。对于一般的个人使用者和中小型企业来说 , MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本 。
Linux作为操作系统,Apache 或Nginx作为 Web 服务器 , MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器 。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合 。
MyISAMMySQL 5.0 之前的默认数据库引擎,最为常用 。拥有较高的插入,查询速度,但不支持事务
InnoDB事务型数据库的首选引擎 , 支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎
BDB源 自 Berkeley DB,事务型数据库的另一种选择,支持Commit 和Rollback 等其他事务特性
Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率 。但是会占用和数据量成正比的内存空间 。并且其内容会在 MySQL 重新启动时丢失
Merge将一定数量的 MyISAM 表联合而成一个整体 , 在超大规模数据存储时很有用
Archive非常适合存储大量的独立的,作为历史记录的数据 。因为它们不经常被读取 。Archive 拥有高效的插入速度,但其对查询的支持相对较差
Federated将不同的 MySQL 服务器联合起来,逻辑上组成一个完整的数据库 。非常适合分布式应用
Cluster/NDB高冗余的存储引擎 , 用多台数据机器联合提供服务以提高整体性能和安全性 。适合数据量大 , 安全和性能要求高的应用
CSV: 逻辑上由逗号分割数据的存储引擎 。它会在数据库子目录里为每个数据表创建一个 .csv 文件 。这是一种普通文本文件,每个数据行占用一个文本行 。CSV 存储引擎不支持索引 。
BlackHole:黑洞引擎,写入的任何数据都会消失,一般用于记录 binlog 做复制的中继
EXAMPLE 存储引擎是一个不做任何事情的存根引擎 。它的目的是作为 MySQL 源代码中的一个例子,用来演示如何开始编写一个新存储引擎 。同样,它的主要兴趣是对开发者 。EXAMPLE 存储引擎不支持编索引 。
另外 , MySQL 的存储引擎接口定义良好 。有兴趣的开发者可以通过阅读文档编写自己的存储引擎 。
参考资料来源:百度百科:mySQL
我的Dz论坛提示mysql数据库超过50兆 。1.一般推荐多少兆? 2.如何缩小它占用空间 。对于discuz论坛来说50M的数据库很小了mysql数据库怎么收缩,等你帖子有几十万了mysql数据库怎么收缩,数据库几个G都很正常,只要数据库够用就可以
别缩小占用空间 , 过度优化会有很多的错误的
如果数据库超过10G,可以考虑站库分离或者云数据库
【mysql数据库怎么收缩 mysql设置数据库大小】mysql数据库怎么收缩的介绍就聊到这里吧 , 感谢你花时间阅读本站内容 , 更多关于mysql设置数据库大小、mysql数据库怎么收缩的信息别忘了在本站进行查找喔 。

    推荐阅读