首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql删除数据,文件大小不变

首先明确一个概念,innodb包含两部分,结构定义和数据,Mysql8.0以前结构定义存放在.frm为后缀的文件里,而Mysql8.0版本以后允许结构定义放到系统数据中,因为结构定义占用的空间很小...,因此我今天主要说是数据, 日常开发中,当我们删除一个的的数据的时候,发现空间大小并不会变小,我们要知道为什么会发生这样神奇的事, 参数innodb_file_per_table 数据可以存在共享空间里...这个时候插入一条id=50的时候,要创建新的数据页的时候,就会复用pageA, 现在我们知道delete 命令只会把记录的位置或数据页标记为可复用,但是磁盘的文件大小不会变小,也就是说delete并不会回收空间...A一样B,把数据A的数据复制到B, 由于B是新建的,所以B不存在空洞,显然B的主键索引更紧凑,数据页利用率也高,如果我们建立一个临时B,把数据A导入B的操作完成后,用B替换A,...临时文件生成后,将日志文件应用到临时文件中,得到一个逻辑数据A相同的数据文件 用临时文件替换A的数据文件 ?

5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    插入hive数据sql

    插入Hive数据SQL在Hive中,我们经常需要将数据插入到中以便进行查询和分析。本文将介绍如何使用SQL语句向Hive中插入数据,以及一些常见的插入数据操作。1....下面是一个创建的示例SQL语句:sqlCopy codeCREATE TABLE IF NOT EXISTS my_table ( id INT, name STRING, age...以下是插入单行数据SQL语句示例:sqlCopy codeINSERT INTO my_table VALUES (1, 'Alice', 25);3....假设我们的结构如下:名:user_info字段:user_id INT, user_name STRING, user_age INT 以下是创建HiveSQL语句:sqlCopy codeCREATE...介绍HiveHive是一个建立在Hadoop之上的数据仓库工具,它提供了类似于SQL的语言HiveQL,使用户能够在Hadoop中进行数据分析和查询。

    71500

    数据库建规则_SQL创建数据

    数据库建表语句的规范小结 建表语句的规范: 1.字段的设计 A. 数据类型尽量用数字类型,数字类型的比字符类型的要快很多。   B....数据类型尽量小,这里的尽量小是指在满足可以预见的未来需求的前提下的,但是有不能太小, 上次监控系统里面的 mon_tair_stat_detail_2012_1 的data_size 和 use_size...所以在建的时候一定要预估这个字段最大的长度到底是多少。   C. 尽量不要允许NULL,除非必要,可以用NOT NULL+DEFAULT 的值来代替。   D....新建的与之前的的字段有相似或者相同的字段,字段的名称和类型也必须相同,切记不能随意的重新命名,例如:token_md5 就不要命名成tokenmd5了。 E....名 字段名字统一用小写。 G.索引名称统一用字段名称,多个字段的索引加_ 比如 (uid,type) 索引名就是 uid_type。

    2.2K10

    使用SQL语句修改数据

    INTO:一个可选的关键字,可以将它用在INSERT和目标之间。 :通常是或视图的名称。 (column_list):要在其中插入数据的一列或多列的列表。...VALUES:引入要插入的数据值的列表。对于column_list或中的每个列,都必须有一个数据值。...利用UPDATE语句更新数据 UPDATE语句的基本语法格式如下: 上述格式主要参数说明如下: TOP(expression)[PERCENT]:指定将要更新的行数或行百分比。...:在UPDATE操作中,返回更新后的数据或基于更新后的数据表达式。 FROM :指定将、视图或派生源用于为更新操作提供条件。...利用Truncate Table语句删除数据 Truncate Table语句从一个中删除所有行的速度要快于DELETE。

    1.7K00

    MySQL查看数据容量大小

    查看一个数据中所有的相关信息: (1)可以在命令下使用show table status \G命令查看: (2)如果想知道MySQL数据库中每个占用的空间、表记录的行数的话,可以打开MySQL的 information_schema...在该库中有一个 TABLES ,这个主要字段分别是: TABLE_SCHEMA : 数据库名 TABLE_NAME:名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH...:数据大小 INDEX_LENGTH:索引大小 其他字段请参考MySQL的手册,我们只需要了解这几个就足够了。...所以要知道一个占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。...例:查看mysql库各表容量大小 select table_schema as '数据库', table_name as '名', table_rows as '记录数', truncate(data_length

    6.1K20

    管理sql server数据_sql server如何使用

    SQL Server中最基本的数据库对象,用于存储数据的一种逻辑结构,由行和列组成, 它又称为二维。 例如,在学生成绩管理系统中,1–是一个学生(student)。...(1) 数据库中存储数据数据库对象,每个数据库包含了若干个由行和列组成。例如,1- -由6行6列组成。...---- 创建数据库最重要的一步为创建其中的数据,创建数据必须定义结构和设置列的数据类型、长度等,下面,我们介绍SQL Server系统数据类型,如表2–所示。...(1)启动“SQL Server Management Studio”,在“对象资源管理器”中展开“数据库”节点,选中“stsc”数据库,展开该数据库,选中表,将其展开,选中表“dbo.xyz”,单击鼠标右键...---- ---- ---- ,各字段,数据实现: 代码入下: -- 选用当前数据库 use sixstar go -- 显示当前数据库中的数据(查询输出student数据) select

    1.8K10

    MySQL查看数据容量大小

    查看一个数据中所有的相关信息: (1)可以在命令下使用show table status \G命令查看: (2)如果想知道MySQL数据库中每个占用的空间、表记录的行数的话,可以打开MySQL的 information_schema...在该库中有一个 TABLES ,这个主要字段分别是: TABLE_SCHEMA : 数据库名 TABLE_NAME:名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH...:数据大小 INDEX_LENGTH:索引大小 其他字段请参考MySQL的手册,我们只需要了解这几个就足够了。...所以要知道一个占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。...例:查看mysql库各表容量大小 select table_schema as '数据库', table_name as '名', table_rows as '记录数', truncate(data_length

    18.7K01
    领券