我面临这个问题:https : //serverfault.com/questions/104618/out-of-resources-for-mysqldump
问题
我正在将 ~52GB 转储恢复到 MySQL 数据库。ibdata1 文件已经超过转储文件的大小,恢复仍然不完整。如果知道 MySQL 转储文件的大小,有没有办法估计 ibdata1 文件的最终大小?
我正在寻找有关如何处理环境报告的建议。我们目前拥有 16 台服务器,其中包含 20 个 SQL Server 2005 实例。我们拥有 6,600 多个数据库,并且在这些实例中不断增长(每个客户 1 个数据库)。我们的大多数数据库运行的大小从 200 mb 到 7gb,其中大约 60 个数据库运行的最大大小从 11GB 到 110gb。
我们正在使用 SAN 进行存储,但在运行影响 IO 的报告时遇到了问题。
我们的一个想法是拉取 60 个更大的数据库,然后使用事务复制来复制这些数据库并在副本上运行报告。
这将使所有较小的数据库在没有较大数据库压力的情况下运行。在未来,我们相信不会再有基于我们公司目标的更大的数据库。
有什么想法吗?
如果您比较通过两个表之间的连接获取数据的查询,性能是否会有任何差异,其中与以下任一表存在关系:
我想在 2 个 InnoDB 表之间迁移数据。
目前我正在运行这个查询:
INSERT INTO table_a SELECT * FROM table_b;
Run Code Online (Sandbox Code Playgroud)
如果数据集增长,避免 CPU 过载的最佳方法是什么?
谢谢
我想要一个表中至少有一个非NULL数据条目的那些列的列表。
换句话说,我想获取以下返回至少一个条目的列名称:
SELECT DISTINCT column_name FROM table WHERE column_name IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
SELECT column_name
FROM information_schema.columns
WHERE table_name = "table_name"
AND EXISTS (
SELECT DISTINCT column_name FROM table_name WHERE column_name IS NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
但这也会返回所有条目所在的列名NULL。
那么如何只获取那些没有NULL条目的列呢?
我正在尝试比较两个 MySQL 转储文件。一个是通过全新安装的 Web 应用程序制作的,另一个是来自同一 Web 应用程序的转储,该应用程序已从先前版本升级到与全新安装相同的版本号。
基本上我想确保升级脚本正常工作,并且所有正确的列和约束都在升级版本中,就像它们在全新安装中一样。我认为一个简单的 diff/sdiff 就足够了,但我遇到了问题:列顺序。
全新安装和升级之间的列顺序不同,导致许多误报“差异”。在查看输出时很容易看出同一列只是在不同的位置,但是对于数百个表,检查和识别这些误报需要很长时间。
是否有更好的方法来比较这两个将忽略列顺序的转储(或强制转储具有按字母顺序或类似顺序排列的列的方法)或一种更好的完全不同的方法。无可否认,我对 MySQL 还是很陌生,并且正在学习,所以任何帮助都将不胜感激。
谢谢。
我希望主站停止向从站复制数据。我知道我可以在奴隶上做到这一点STOP SLAVE;,但我想知道是否有办法在主人上做到这一点。
一种可能的解决方案可能是将 更改server_id为 0,但在这种情况下,我必须在主服务器中重新启动 mysql 才能使更改生效。
我正在寻找的是像STOP MASTER;.
我设置了 innodb_file_per_table 并且就在今天,在我对 800M 表进行了几次更改以将其减少到大约 600M 之后,我的 ibdata1 文件从 59M 跳到了 323M。该特定表的 .ibd 文件减少了,但服务器的 ibdata1 文件变得疯狂。有任何想法吗?
在 MySQL 中,无论如何都可以将“False”加载到布尔列中。
在具有布尔列且数据为“真”或“假”的表中加载数据时,它会发出以下警告:
"Incorrect integer value: 'False' for column 'c1' at row 1".
Run Code Online (Sandbox Code Playgroud)
表结构如下
Create Table: CREATE TABLE `n1` (
`c1` boolean ,
`c2` int
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
我正在使用加载数据语句从文件“file1”加载,该文件以逗号分隔并用双引号括起来。以下是数据样本
"False","1"
"True","2"
Run Code Online (Sandbox Code Playgroud)
加载数据本地infile语句如下
load data local infile 'file1'
into table n1
FIELDS TERMINATED BY ','
enclosed by '\"' LINES
TERMINATED BY '\r\n';
Run Code Online (Sandbox Code Playgroud) mysql ×8
innodb ×3
backup ×2
mysqldump ×2
replication ×2
foreign-key ×1
ibdata ×1
index-tuning ×1
migration ×1
null ×1
performance ×1
reporting ×1
restore ×1
schema ×1
select ×1
sql-server ×1