假设一个主要包含 InnoDB 表的生产 OLTP 系统
任何详述特定status
变量和诊断的轶事将不胜感激。
我有一个经常运行的导入过程,我希望它是一种“全有或全无”的交易,也就是:交易。
有很多方面,导入可能会产生 100k-1mil+ 记录之间的任何地方。这相当于有效载荷范围从几 MB 到几百 MB 的数据。
我知道临时表是另一种选择 - 但这种方法似乎很方便。
对于这种在提交之间进行大量数据操作的实践,是否有任何需要注意的警告?(在提交后的典型写入/索引负载突发之外)
首先让我承认我对硬盘的内部工作原理非常无知。因此,当我阅读变量innodb_flush_method的手册时,它让我感到困惑。我可以用外行的术语解释 O_DSYNC 和 O_DIRECT 的区别,以及如何知道这是否是数据库服务器上的性能问题。
我的设置的一些统计信息:运行 MySQL 5.1.49-64 位的 Mac OSX 10.6(32 位内核,因为架构已过时)(希望它能让我使用内存)。8GB RAM,~6GB innodb 数据/索引。
我正在尝试查找所有 MySQL Workbench 数据库都在使用的硬盘上的总大小。
有谁知道一种简单的方法来解决这个问题?
如果不出意外,默认位置 mysql/workbench 用于在 Windows 机器上保存原始数据?
提前致谢!昆蒂斯
我们有一个 MySQL 5.0 服务器,以 MyISAM 的形式运行所有表。我们有两个奴隶,在上个月,我们已经升级到 MySQL 5.5。他们的表也仍然是 MyISAM。
我原来的计划是把5.0的master升级到5.5,然后转成InnoDB。现在我想知道,在升级之前开始是否更有意义?我一直很谨慎,因为我听说 5.5 下的 InnoDB 比 5.0 下的 InnoDB 快得多。这是没有根据的,我现在应该开始吗?
我有一个数据库,由于一些问题,我需要将一些表从 MyISAM 转换为 InnoDB。
我基本上是这样做的:
set sql_log_bin = 0;
set sql_mode = 'STRICT_ALL_TABLES';
ALTER TABLE `table1` ENGINE = INNODB;
ALTER TABLE `table2` ENGINE = INNODB;
ALTER TABLE `table3` ENGINE = INNODB;
ALTER TABLE `table4` ENGINE = INNODB;
ALTER TABLE `table5` ENGINE = INNODB;
ALTER TABLE `table6` ENGINE = INNODB;
Run Code Online (Sandbox Code Playgroud)
它工作正常,但据我所知,我现在应该重新配置 my.cnf 然后重新启动 mysql 服务器,对吗?
如果服务器同时包含 MyISAM 和 InnoDB 表,我应该如何调整 my.cnf 文件?
我正在对本地 MySQL 数据库进行大型 INSERT
我有 2,000,000 行,现在我真的开始注意到速度变慢了。我一直听说 MySQL 的可扩展性不是很好
我希望这个数据库变得更大,而且我还有很多东西要插入
在这里使用亚马逊微型实例会有什么好处吗?
我不认为我的上传速度会成为瓶颈,所以我的逻辑是他们的分布式处理将使数据库更快。
事实证明,这更多是 CPU 利用率问题,但亚马逊的解决方案是否会更好,也许会针对更多可用处理器进行更优化?使用此逻辑,更昂贵的实例将具有更好的性能
但是这里涉及这么多变量,有没有人有这方面的经验要说?
我主要对 InnoDB 感兴趣,但也对 MyISAM 感兴趣。
我环顾 information_schema 并没有在任何地方看到这些数据。
我正在使用 MySQL 5.5.16。
mysql ×8
innodb ×6
myisam ×3
mysql-5.5 ×3
amazon-rds ×1
my.cnf ×1
performance ×1
transaction ×1
windows ×1