问题标签 [innodb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - MyISAM versus InnoDB
I'm working on a projects which involves a lot of database writes, I'd say (70% inserts and 30% reads). This ratio would also include updates which I consider to be one read and one write. The reads can be dirty (e.g. I don't need 100% accurate information at the time of read).
The task in question will be doing over 1 million database transactions an hour.
I've read a bunch of stuff on the web about the differences between MyISAM and InnoDB, and MyISAM seems like the obvious choice to me for the particular database/tables that I'll be using for this task. From what I seem to be reading, InnoDB is good if transactions are needed since row level locking is supported.
Does anybody have any experience with this type of load (or higher)? Is MyISAM the way to go?
mysql - 如何快速重命名 MySQL 数据库(更改架构名称)?
MySQL 的MySQL手册涵盖了这一点。
通常我只是转储数据库并用新名称重新导入它。对于非常大的数据库,这不是一个选项。显然RENAME {DATABASE | SCHEMA} db_name TO new_db_name;
做坏事,只存在于少数几个版本中,总体上是个坏主意。
这需要与InnoDB一起使用,它存储的东西与MyISAM非常不同。
mysql - 如何更安全地使用 MyISAM 表?
我喜欢 InnoDB 的安全性、一致性和自检性。
但我需要 MyISAM 的速度和重量。
如何使 MyISAM 不易因崩溃、不良数据等而损坏?通过检查(CHECK TABLE 或 myisamchk)需要很长时间。
我不是要求事务安全——这就是 InnoDB 的目的。但我确实想要一个可以快速重启的数据库,而不是几小时(或几天!)之后。
更新:我不是在问如何更快地将数据加载到表中。我已经对此表示反对,并确定为我的 LOAD DATA 使用 MyISAM 表要快得多。我现在追求的是降低使用 MyISAM 表的风险。也就是说,减少损坏的机会,提高恢复速度。
mysql - 如何在 MySql 4 上方安装的 MySql 5 上启用 inno-db 支持?
如何在已安装的 MySql 实例上启用 inno-db 支持?
我已经安装了 mysql-5.0.67-win32。执行“显示引擎”时,“InnoDB”为“禁用”。根据文档,MySql 是在支持 inno-db 的情况下编译的(来自 doc:DISABLED 的值要么是因为服务器是使用禁用引擎的选项启动的,要么是因为未提供启用它所需的所有选项。)
在 my.ini 中,我用“skip-innodb”注释了行。这没有帮助。所有其他与 inno-db 相关的变量保持不变。
在我遇到所描述的情况之前,我已经执行了一些不寻常的操作。我已经安装了 mysql-4.0.17-win。我卸载了它,然后安装了 mysql-5.0.67-win32。在安装向导中,我只选择了 MyISAM 支持(据我所知,我以这种方式禁用了 inno-db 支持。当我尝试在支持 inno-db 的情况下重新安装时,我在使用以前的数据库“mysql”和帐户信息时遇到了问题) .
MySQL 文档说我应该使用 mysqldump 导出数据,然后在升级过程中导入导出的数据。我尝试这样做,但是在导入数据时,我收到了有关语法错误的消息(我认为它与 mysql 的第 4 和第 5 版本的一些不兼容有关)
mysql - MySQL InnoDB 数据库恢复
我必须恢复在 MySQL 5.0 中无意中删除的数据库。通过检查备份文件,我似乎只有 .FRM 文件来保存数据库数据。
谁能告诉我这是否是我从备份中执行数据库恢复/导入所需的全部内容,还是我应该提供其他文件来完成此操作?
mysql - 使用 mysqldump 转储和加载 MySQL InnoDB 数据库的最快方法是什么?
我想使用 mysqldump 和 MySQL 5.1 创建一个包含大约 40 个 InnoDB 表和大约 1.5GB 数据的数据库副本。
什么是可以最快转储和加载数据的最佳参数(即:--single-transaction)?
同样,将数据加载到第二个数据库时,是否更快:
1) 将结果直接传送到第二个 MySQL 服务器实例并使用 --compress 选项
或者
2)从一个文本文件中加载它(即:mysql < mysql_dump.sql)
mysql - 如何确定整个 MySQL DB 都加载到内存中?
我正在运行一个mysql服务器。我想以某种方式确保将整个数据库加载到内存中,因为我听说它会快很多。
这是真的?以及如何验证它?
mysql - mysql“删除数据库”需要时间——为什么?
mysql5.0 带有一对数据库“A”和“B”,都带有大型 innodb 表。“删除数据库 A;” 冻结数据库“B”几分钟。那时什么都没有使用“A”,那么为什么这是一个如此密集的操作呢?
加分点:假设我们使用“A”,将数据上传到“B”,然后切换到使用“B”,我们怎样才能更快地做到这一点?删除数据库并不是人们通常必须一直做的事情,所以这有点离谱。
mysql - 如何查看表或列的所有外键?
在 MySQL 中,如何获取指向特定表的所有外键约束的列表?特定的列?这与这个 Oracle question相同,但适用于 MySQL。
mysql - 如何检查特定表的 MySQL 引擎类型?
我的 MySQL 数据库包含几个使用不同存储引擎(特别是 myisam 和 innodb)的表。如何找出哪些表正在使用哪个引擎?