数据库占用空间太大,把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变?
阅读更多
数据库占用空间太大,把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变?
以下是例子
1 | SELECT * FROM TABLE WHERE xxx = 11 |
如果列xxx确实只有11的,你是否就认为筛选出来的就一定只有xxx=11的呢?
在过滤字段为数值类型的时候,数值类型有一种隐式转换,如果是以数字开头的,包含有字符,后面的字符会被截断,只取前面的数字值。
大概说一下业务场景,需要定时计算一些数据,从其他系统、接口拉取达到的数据比较多,然后经计算后的值存储在本系统中。拉取的数据量可能有万左右,然后以主键存在的数据是需要更新的。不存在则插入。每次做全量更新/插入。
InnoDB的数据存储在表空间,表空间是由InnoDB管理的一个黑盒子,由一系列的数据文件组成。InnoDB采用MVCC来支持高并发
Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。