我有一个很大的 MySql DB (150GB),直到现在我才注意到innodb_file_per_table设置为off导致整个数据库托管在一个文件 ( ibdata1) 上。我想激活innodb_file_per_table并让它追溯地将数据库分成几个文件,最好的方法是什么?
我有一个要更改的 InnoDB 表。该表有大约 80M 行,并退出了一些索引。
我想更改其中一列的名称并添加更多索引。
alter table,最快的解决方案吗?这个时候,我只关心速度 :)
我正在使用 MySql 5.5。是否可以在expire_logs_days不重新启动服务器的情况下进行更改并使更改生效?
我正在运行带有主/从复制(1 个主,2 个从)的 MySQL5.5。
我有一个每周运行一次并截断特定表的进程。表不大,只有几千条记录。
出于某种原因,该TRUNCATE TABLE命令需要很长时间才能执行(在主机和从机上)。执行大约需要 400K 毫秒!!当它在从站上运行时,会导致它滞后于主站。在后TRUNCATE TABLE结束,一切恢复正常。
我知道其中一个从站在执行时没有收到任何读取,TRUNCATE TABLE因为它是一个专用的从站,并且从该从站读取的进程已关闭。此外,在此从属设备上,执行所需的时间相同。
这是表结构:http : //pastebin.com/qEQB4juR
关于如何加速 TRUNCATE TABLE 的任何想法?
我们公司的服务器目前托管在 VPS 上,我们决定迁移到专用服务器。
在为数据库服务器选择最佳硬件时,我们应该投入更多资源:更好的 CPU(更多内核)?或更多的内存?
最佳投资回报率在哪里?
有什么建议?
我有以下表格:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`last_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`account_data` text COLLATE utf8_unicode_ci,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
`twitter_username` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`crypted_password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`password_salt` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`persistence_token` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`single_access_token` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`perishable_token` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`login_count` int(11) NOT NULL …Run Code Online (Sandbox Code Playgroud) 我目前有一个有 2 个从站的主站,都运行 MySql 5.5。
我可以连接到单个主站的从站数量有哪些限制?应该考虑哪些参数?
我有一个数据库,其整个大小约为 44GB,其中 ibdata1 约为 35GB。这没有意义,因为数据的大小不应超过 10GB。
我使用以下查询来估计数据大小:
SELECT CONCAT(table_schema, '.', table_name),
CONCAT(ROUND(table_rows / 1000000, 2), 'M') rows,
CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G') DATA,
CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G') idx,
CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size,
ROUND(index_length / data_length, 2) idxfrac
FROM information_schema.TABLES
ORDER BY data_length + index_length DESC
LIMIT 30;
Run Code Online (Sandbox Code Playgroud)
任何想法如何清理 ibdata1 以及它为什么增长这么多?
顺便说一句,我使用 innodb_file_per_table
是否有一种工具可以发现 MySql 中的冗余索引?
例如,如果我有以下索引:
index1(col1)
index2(col1,col2)
Run Code Online (Sandbox Code Playgroud)
那么index1应该被标记为冗余。
有任何想法吗?
我正在运行 MySQL 5.5/innoDB(通过 ubuntu)的 M/S 复制。
我的数据库非常大:~250GB。
我正在寻找可以执行以下操作的备份工具/服务:
有什么建议?
mysql ×10
mysql-5.5 ×4
innodb ×3
replication ×3
index ×2
alter-table ×1
backup ×1
ddl ×1
ibdata ×1
my.cnf ×1
mysqldump ×1
performance ×1
query ×1
truncate ×1