相关疑难解决方法(0)

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

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

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

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

mysql innodb myisam mysqldump mysql-5.5

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

如何在不转储所有数据库的情况下缩小 innodb 文件 ibdata1?

InnoDB 将所有表存储在一个大文件中ibdata1

删除大表后,无论表有多大,文件都会保持其大小。如何缩小该文件而不必转储并重新导入整个数据库(总共有数百 GB)?

我认为原因是因为您仍然可以回滚下降。就我而言,我不需要。

mysql innodb memory disk-space

24
推荐指数
2
解决办法
5万
查看次数

mysql中的iblog文件究竟是什么

我想了解这些 ibdata 文件,因为它们在崩溃恢复过程中起着至关重要的作用。我无法通过网络找到合适的资源。

mysql innodb logs

18
推荐指数
1
解决办法
4万
查看次数

INNODB 性能漏洞在哪里?

我有一个奇怪的问题,我似乎无法解决。我更像是一个网络程序员而不是服务器/数据库管理员,所以我希望这里有人可以帮助我。

情况

我正在开发一个处理大量update,insertdelete请求的系统。因此,我选择 INNODB 作为我的存储引擎,因为它具有行锁定功能。我们每 10 分钟更新 60,000 条记录,使用 Gearman 在不同服务器上并行处理我们的工作。代码是用 PHP 编写的,我们使用的是 Zend Framework。

问题

SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction
Run Code Online (Sandbox Code Playgroud)

我们几乎每 30 分钟就会收到一次上述错误,来自我们的一名 Gearman 工人。

mysql_report

MySQL 5.1.63-0+squeeze1  uptime 15 9:52:12      Tue Sep 11 21:25:23 2012

__ Key _________________________________________________________________
Buffer used    55.00k of  16.00M  %Used:   0.34
  Current       2.92M            %Usage:  18.24
Write hit      99.95%
Read hit      100.00%

__ Questions ___________________________________________________________
Total         122.05M    91.7/s
  DMS         106.63M    80.1/s  %Total: …
Run Code Online (Sandbox Code Playgroud)

mysql innodb performance

11
推荐指数
1
解决办法
4131
查看次数

MySQL .ibd 文件太大

我在 linux 中遇到内存问题。当我使用 df -hi 检查内存分配时,找到了一个路径 /dev/sda1 并且它被 100% 使用。当我挖掘更多时,我发现 /var/lib/mysql 文件几乎占用了所有内存。最后我遇到了一张扩展名为 .ibd 的表,几乎有 20GB。当我点击 sudo du -a | 排序-nr | 头命令,我终于找到了实际的表。它是这样的:

20937708        ./var/lib/mysql/databasename/tablename.ibd
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么。请帮帮我。由于存储问题,我的服务器几乎停止了。

mysql innodb

10
推荐指数
3
解决办法
2万
查看次数

MySQL 数据库相对于转储文件有多大?

我正在将 ~52GB 转储恢复到 MySQL 数据库。ibdata1 文件已经超过转储文件的大小,恢复仍然不完整。如果知道 MySQL 转储文件的大小,有没有办法估计 ibdata1 文件的最终大小?

mysql innodb restore

7
推荐指数
1
解决办法
5723
查看次数

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万
查看次数

MySQL InnoDB 中表的预定优化

在 MySQL InnoDB 数据库中安排表的自动优化的最佳方法是什么?例如,我可以使用事件吗?我最近遇到了一个很大的性能问题(在查询时),其中一个表实际上是我数据库中最大的表,并且经常更新。我在表上运行OPTIMIZE后,问题就解决了。

mysql innodb optimization

5
推荐指数
1
解决办法
9871
查看次数

如何优化和修复 InnoDB 表?ALTER 和 OPTIMIZE 表失败

我刚刚将我的 Wordpress 数据库切换为使用 InnoDB 引擎。

使用 MyISAM 时,我曾经运行OptimizeRepair table. 但是,对于 InnoDB,这些不起作用。

我手动运行OPTIMIZE TABLE并建议ALTER TABLE但没有一个删除开销。我在mysqltuner显示 14 个碎片表的服务器上运行- 我总共有 14 个表。即使在运行optimizeand 之后alter tables,所有 14 个表仍然碎片化!

我怎样才能正确地OPTIMIZEREPAIRInnoDB 表?

mysql innodb

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

分区和释放磁盘空间

我正在使用 innodb_file_per_table 运行 MySql innodb。

作为日常脚本,我想为一组表创建一个新分区,并删除昨天的分区。需要运行什么命令来删除旧分区以释放磁盘空间?我希望避免系统因数据库磁盘使用而耗尽磁盘空间。我还想避免关闭 Mysql。

编辑:我读过丢弃表空间应该删除占用大部分空间的 .ibd 文件。

ALTER TABLE tbl_name DISCARD TABLESPACE;
Run Code Online (Sandbox Code Playgroud)

但是,在分区表上使用此命令存在一个已知错误。

mysql innodb partitioning disk-space

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

配置 innodb_file_per_table 时,ibdata1 呈指数增长

我已经安装了一个带有 InnoDB 的 MySQL 集群(随后启用了 innodb_file_per_table),但是由于我切换到 innodb_file_per_table,文件 ibdata1 增长(每月 2GB)。

我的my.cnf文件是否正确?

为什么我的 ibdata1 这么大(22GB)?

我如何查看 ibdata1 中有什么?

服务器配置:

  • Debian 6 amd64

  • mysql-client-5.1 5.1.61-0+squeeze1

我的 InnoDB 配置文件:

#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#

innodb_data_home_dir            = /var/lib/mysql
innodb_data_file_path           = ibdata1:10M:autoextend
innodb_log_group_home_dir       = /var/lib/mysql
innodb_file_per_table
innodb_buffer_pool_size         = 5G
innodb_additional_mem_pool_size = 48M
innodb_log_files_in_group       = 3
innodb_log_file_size            = 512M …
Run Code Online (Sandbox Code Playgroud)

mysql innodb ibdata

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