相关疑难解决方法(0)

如何在innodb中禁用索引

我试图通过临时禁用其索引来加速InnoDB表中的批量插入:

ALTER TABLE mytable DISABLE KEYS;
Run Code Online (Sandbox Code Playgroud)

但它发出警告:

+-------+------+-------------------------------------------------------------+
| Level | Code | Message                                                     |
+-------+------+-------------------------------------------------------------+
| Note  | 1031 | Table storage engine for 'mytable' doesn't have this option |
+-------+------+-------------------------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

我们如何禁用索引?

在进行批量插入时,有哪些替代方法可以避免使用索引?

我们怎样才能加快这个过程?

mysql indexing innodb

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

在大型mysql表中添加一个新列

在大型mysql表中添加新列的最快方法是什么?

更改表添加列创建完整表的副本,然后使用新的create table替换旧表.在此过程运行时,原始表是可读的,但所有插入和更新都会停止.

在大型表格上,副本可能需要很长时间,有没有办法减少它?

mysql performance

13
推荐指数
1
解决办法
4819
查看次数

MySQL在大表中添加列的性能

我在本地安装了InnoDB的MySQL 5.5.37和Ubuntu 13.10上的apt-get.我的机器是台式机上的i7-3770 + 32Gb内存+ SSD硬盘.对于仅包含150万条记录的表"mytable",以下DDL查询需要超过20分钟(!):

ALTER TABLE mytable ADD some_column CHAR(1) NOT NULL DEFAULT 'N';
Run Code Online (Sandbox Code Playgroud)

有没有办法改善它?我检查了

show processlist;
Run Code Online (Sandbox Code Playgroud)

它显示它出于某种原因正在复制我的表格.令人不安的是令人不安的.有没有办法关掉这个副本?是否有其他方法可以提高向大表添加列的性能?

除此之外,我的数据库相对较小,只有1.3Gb转储大小.因此它(理论上)应该100%适合记忆.

有设置可以帮助吗?迁移到Precona会改变一切吗?

补充:我有

innodb_buffer_pool_size = 134217728
Run Code Online (Sandbox Code Playgroud)

mysql performance ddl database-performance

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

MySQL"set unique_checks","set foreign_key_checks"与"alter table disable keys"

我们遇到一个问题,即mysqldump脚本占用90%的时间来填充它处理的少量表.消除FK和索引消除了速度问题,但不是一个可接受的解决方案.

转储脚本确实有:

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
Run Code Online (Sandbox Code Playgroud)

我们可以期待任何不同的行为ALTER TABLE foo DISABLE KEYS吗?

此外,是disable keys 会话作用域还是永久性的,直到我重新启用它?我可以从一个mysql会话中禁用密钥并使其影响从另一个会话发出的导入吗?

mysql indexing foreign-keys mysqldump

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

MySQL:在大表中添加一个字段

我有一张约200,000条记录的表格.我想为它添加一个字段:

 ALTER TABLE `table` ADD `param_21` BOOL NOT NULL COMMENT 'about the field' AFTER `param_20`
Run Code Online (Sandbox Code Playgroud)

但它似乎是一个非常繁重的查询,它需要很长时间,即使在我的Quad amd PC上有4GB的RAM.

我在windows/xampp和phpMyAdmin下运行.在添加字段时,mysql是否与每条记录都有业务往来?或者我可以更改查询,以便更快地进行更改吗?

mysql performance

3
推荐指数
1
解决办法
3384
查看次数

mysql慢查询

ALTER TABLE customers ADD split INT(1);

10密耳.记录......我执行了这个命令1小时仍在加载..有什么方法可以让它更快完成?

mysql

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