相关疑难解决方法(0)

为什么 InnoDB 将所有数据库存储在一个文件中?

MyISAM 用于将每个表存储在相应的文件中很方便。InnoDB 在很多方面都取得了进步,但我想知道为什么 InnoDB 将所有数据库存储在一个文件中(ibdata1默认情况下)。

我知道 InnoDB 将通过表的单个索引文件映射文件中数据的位置,但我不明白为什么它将所有数据混合在一个文件中。更重要的是,为什么要混合服务器上所有数据库的数据?

MyISAM 的一个有趣功能是,可以将数据库文件夹复制/粘贴到另一台机器上,然后使用该数据库(无需转储)。

mysql innodb myisam mysqldump mysql-5.5

56
推荐指数
3
解决办法
7万
查看次数

如何从 InnoDB 表中删除碎片?

我有一个包含多个表的数据库。

我想从表中删除一些记录,说记录数超过 20K 或 50K。

所有的表都是 InnoDB。并且file_per_table关闭的

当我从多个表中删除记录时,表中会出现碎片。

有没有办法消除碎片。?

4月17日更新

mysql> select TABLE_NAME, TABLE_SCHEMA, Data_free from information_schema.TABLES where TABLE_SCHEMA NOT IN ('information_schema', 'mysql') and Data_Free >0;
+-----------------+--------------+-----------+
| TABLE_NAME      | TABLE_SCHEMA | Data_free |
+-----------------+--------------+-----------+
| City            | world_innodb |   5242880 |
| City_Copy       | world_innodb |   5242880 |
| Country         | world_innodb |   5242880 |
| CountryLanguage | world_innodb |   5242880 |
| a               | world_innodb |   5242880 |
| t1              | world_innodb |   5242880 …
Run Code Online (Sandbox Code Playgroud)

mysql innodb mysql-5.5

14
推荐指数
2
解决办法
4万
查看次数

OPTIMIZE TABLE 进度是否有进度指示器?

MySQL 5.1.4x (Windows) | 数据库

我最近从 mySQL 数据库(几十万行)中清除了数据,我打算使用

OPTIMIZE TABLE LOGTABLEFOO1,LOGTABLEFOO2,LOGTABLEFOO3;
Run Code Online (Sandbox Code Playgroud)

为了减少文件系统中的空白空间占用的数据空间。

我担心的是,一旦我开始执行此命令,我将不知道要花多长时间或在此过程中处于什么位置。无论如何我可以确定这些信息吗?据我所知,没有进度指示器。

mysql innodb windows mysql-5.1

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

innodb ×3

mysql ×3

mysql-5.5 ×2

myisam ×1

mysql-5.1 ×1

mysqldump ×1

windows ×1