innodb相关内容

为什么 MySQL 的 MyISAM 引擎不支持外键?

我正在为我的研究编写一个网络应用程序,其中包括全文搜索和外键. 我在某处看过,MyISAM 引擎适合全文搜索,InnoDB 适合外键. 在这种情况下,我应该使用什么引擎才能获得最佳性能? 为什么 MyISAM 不支持外键关系,而 InnoDB 支持? 为什么 MyISAM 支持全文搜索而 InnoDB 不支持? 解决方案 请告诉我,在这种情况下,我必须使用什么引擎来 ..
发布时间:2021-11-20 22:51:33 数据库

MySQL 整数与日期时间索引

首先让我说我看过许多类似的问题,但所有这些都与 Timestamp 和 DateTime 字段类型相关,没有索引.至少这是我的理解. 众所周知,DateTime 有一定的优势.把它们放在一边,假设表的引擎是 InnoDB 和 10+ 百万条记录,当条件基于以下时,查询会执行得更快: 带索引的日期时间 int 与索引 换句话说,将日期和时间存储为 DateTime 或 int 中 ..
发布时间:2021-11-20 22:50:16 数据库

MySQL 的默认 ON DELETE 行为是什么?

我正在尝试解析 MySQL 文档.他们可能会更清楚.他们似乎在说有五种可能性:SET NULL、NO ACTION、RESTRICT、CASCADE 和 SET DEFAULT. NO ACTION 和 RESTRICT 做同样的事情(防止任何破坏 FK 的 DB 更改),并且该事情是默认设置,因此如果您省略 ON DELETE 子句,则您说的是 NO ACTION(或 RESTRICT - ..
发布时间:2021-11-20 22:48:13 数据库

索引布尔字段是否有任何性能提升?

我即将编写一个包含 WHERE isok=1 的查询.顾名思义,isok 是一个布尔字段(实际上是一个 TINYINT(1) UNSIGNED,根据需要设置为 0 或 1). 索引该字段是否有任何性能提升?引擎(在本例中为 InnoDB)查找索引的性能会更好还是更差? 解决方案 并非如此.你应该把它当作一本书来思考.如果一本书中只有 3 种单词,并且您将所有单词编入索引,则索引页数将 ..
发布时间:2021-11-20 22:47:56 数据库

MySQL InnoDB:自增非主键

是否可以自动递增非主键? 表“book_comments" book_id medium_int时间戳 medium_intuser_id medium_int投票支持 small_int投票反对 small_int评论文字comment_id medium_int主键 ->(book_id, 时间戳, user_id) 此表上将没有其他索引.但是,我想让 comment_id 列自动递 ..
发布时间:2021-11-20 22:41:16 数据库

如何在mysql中启用INNODB

当我在 MySQL 中执行查询时,它返回一个错误,指出 InnoDB 未启用.当我点击存储引擎时,InnoDB 被禁用. 如何启用 InnoDB? 解决方案 您需要在 my.cnf 文件中启用它,然后重新启动您的服务器: http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#option_mysqld_inn ..
发布时间:2021-11-20 22:40:04 数据库

如何修复 InnoDB 表?

我们(显然)昨晚对我们的 Solaris MySQL 数据库引擎执行得很差.至少有一些 InnoDB 表已损坏,事务日志中出现时间戳乱序错误,以及有关索引损坏的特定错误. 我们知道可用于 MyISAM 表修复的工具,但找不到任何用于 InnoDB 的工具. 旁注:尝试优化表(在我尝试重建损坏的索引时)会导致数据库服务器崩溃. 解决方案 首先停止服务器并对光盘进行映像.只针对这一 ..
发布时间:2021-11-20 22:37:49 数据库

如何使用索引优化 InnoDB 上的 COUNT(*) 性能

我有一个较大但很窄的 InnoDB 表,其中包含约 9 万条记录.在表上执行 count(*) 或 count(id) 非常慢(6 秒以上): DROP TABLE IF EXISTS `perf2`;创建表`perf2`(`id` int(11) NOT NULL AUTO_INCREMENT,`channel_id` int(11) 默认为空,`timestamp` bigint(20) 非 ..
发布时间:2021-11-20 22:36:57 数据库

Hibernate:创建 Mysql InnoDB 表而不是 MyISAM

如何让 Hibernate(使用 JPA)创建 MySQL InnoDB 表(而不是 MyISAM)?我找到了在使用 Hibernate 生成 SQL 文件来创建表时有效的解决方案,但没有任何“即时"有效. 解决方案 你不能指定 Hibernate 方言并使用 hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect 编辑 ..
发布时间:2021-11-20 22:25:46 Java开发

虚假外键约束失败

我收到此错误消息: 错误 1217 (23000) 在第 40 行:不能删除或更新父行:a外键约束失败 ...当我尝试删除桌子时: DROP TABLE IF EXISTS `area`; ... 定义如下: CREATE TABLE `area` (`area_id` char(3) COLLATE utf8_spanish_ci NOT NULL,`nombre_area` ..
发布时间:2021-11-20 22:23:22 数据库

强制 InnoDB 重新检查表/表上的外键?

我有一组 InnoDB 表,我需要通过删除一些行并插入其他行来定期维护这些表.一些表具有引用其他表的外键约束,因此这意味着表加载顺序很重要.要插入新行而不用担心表的顺序,我使用: SET FOREIGN_KEY_CHECKS=0; 之前,然后: SET FOREIGN_KEY_CHECKS=1; 之后. 加载完成后,我想检查更新表中的数据是否仍然保持参照完整性--新行不会破坏外键约束 ..
发布时间:2021-11-20 22:23:13 数据库

MySQL中的UUID性能?

我们正在考虑使用 UUID 值作为 MySQL 数据库的主键.插入的数据是从数十、数百甚至数千台远程计算机生成的,并且以每秒 100-40,000 次插入的速度插入,我们永远不会进行任何更新. 在我们开始剔除数据之前,数据库本身通常会达到大约 5000 万条记录,因此不是一个庞大的数据库,但也不是很小.我们还计划在 InnoDB 上运行,但如果有更好的引擎来支持我们的工作,我们愿意改变这种情 ..
发布时间:2021-11-20 22:13:55 数据库

如何检查特定表的 MySQL 引擎类型?

我的 MySQL 数据库包含多个使用不同存储引擎的表(特别是 myisam 和 innodb).我怎样才能找出哪些表是使用哪个引擎? 解决方案 SHOW TABLE STATUS WHERE Name = 'xxx' 这将为您提供(除其他外)一个 Engine 列,这正是您想要的. ..
发布时间:2021-11-20 22:06:52 数据库

为什么 MySQL 自动增量会在插入失败时增加?

一位同事刚刚让我意识到 MySQL 的一个非常奇怪的行为. 假设您有一个带有 auto_increment 字段和另一个设置为唯一字段的表(例如用户名字段).当尝试使用表中已有的用户名插入一行时,插入失败,正如预期的那样.然而,当您在多次尝试失败后插入有效的新条目时,可以看出 auto_increment 值会增加. 例如,当我们的最后一个条目看起来像这样...... ID:10用户 ..
发布时间:2021-11-20 22:03:35 数据库

不同数据库之间的 MySQL InnoDB 外键

我想知道在 MySQL 中的 InnoDB 中是否有可能有一个 table 和 外键 引用不同的表中的另一个表数据库 ? 如果是这样,如何做到这一点? 解决方案 我没有看到对 https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html. 所以只要使用 otherdb.othertable 就可以了 ..
发布时间:2021-11-20 22:03:07 数据库

防止 MySQL 重复插入的自动增量

使用 MySQL 5.1.49,我正在尝试实现一个标记系统我的问题是一个有两列的表:id(autoincrement), tag(unique varchar) (InnoDB) 当使用查询时,INSERT IGNORE INTO tablename SET tag="whatever",即使插入被忽略,自动递增的id值也会增加. 通常这不会成为问题,但我希望有很多可能的尝试为这个特定 ..
发布时间:2021-11-20 21:57:06 数据库

如何禁用 SQLAlchemy 缓存?

我在使用 sqlalchemy 时遇到缓存问题. 我使用 sqlalchemy 将数据插入到 MySQL 数据库中.然后,我有另一个应用程序处理这些数据,并直接更新它. 但是 sqlalchemy 总是返回旧数据而不是更新的数据.我认为 sqlalchemy 缓存了我的请求......所以......我应该如何禁用它? 解决方案 人们认为有一个“缓存"在起作用的常见原因,除了通 ..
发布时间:2021-11-20 21:53:44 数据库

为什么 MySQL InnoDB 插入这么慢?

我使用大随机数作为密钥(来自另一个系统).在相当小的(如几百万行)表上插入和更新所需的时间比我认为的合理时间要长得多. 我提炼了一个非常简单的测试来说明.在测试表中,我试图让它尽可能简单;我的真实代码没有如此简单的布局,并且具有关系和附加索引等.但是,更简单的设置显示出相同的性能. 结果如下: 创建 MyISAM 表耗时 0.000 秒创建 1024000 行测试数据耗时 1.243 ..
发布时间:2021-11-20 21:51:55 数据库

MySql:MyISAM 与 Inno DB!

MySql 中的 MyISAM 和 Inno DB 类型有什么区别? 解决方案 主要区别在于 InnoDB 支持事务,而 MyISAM 不支持. 还有许多其他差异,但我所知道的常见差异是: 人们通常认为 MyISAM 的搜索速度更快,但最近 InnoDB 的改进正在消除这种差异并提高高并发工作负载性能 InnoDB 支持事务,而 MyISAM 不支持 InnoDB 支持参照 ..
发布时间:2021-11-20 21:51:26 数据库