Questions tagged «innodb»

InnoDB是MySQL的ACID兼容事务存储引擎,它使用MultiVersion并发控制(MVCC)。自5.5.5版以来,它一直是MySQL的默认存储引擎。

9
假外键约束失败
我收到此错误消息: 第40行的错误1217(23000):无法删除或更新父行:外键约束失败 ...当我尝试放一张桌子时: DROP TABLE IF EXISTS `area`; ...定义如下: CREATE TABLE `area` ( `area_id` char(3) COLLATE utf8_spanish_ci NOT NULL, `nombre_area` varchar(30) COLLATE utf8_spanish_ci NOT NULL, `descripcion_area` varchar(100) COLLATE utf8_spanish_ci NOT NULL, PRIMARY KEY (`area_id`), UNIQUE KEY `nombre_area_UNIQUE` (`nombre_area`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci; 有趣的是,我已经删除了模式中具有针对其的外键的所有其他表area。实际上,除area表外,数据库为空。 如果数据库中没有其他对象,它怎么可能有子行?据我所知,InnoDB不允许在其他模式上使用外键,对吗? (我什至可以运行RENAME TABLE area TO something_else命令:-?)
110 mysql  innodb 

7
索引布尔字段是否有任何性能提升?
我将要编写一个包含的查询WHERE isok=1。顾名思义,isok是一个布尔字段(实际上是a TINYINT(1) UNSIGNED,根据需要设置为0或1)。 索引该字段是否有任何性能提升?引擎(在这种情况下为InnoDB)在查询索引方面会表现得更好还是更差?
102 mysql  indexing  innodb 

9
使用InnoDB进行全文搜索
我正在开发一个大容量的Web应用程序,其中的一部分是讨论帖子的MySQL数据库,该数据库需要平稳地增长到2000万+行。 我本来打算对表使用MyISAM(用于内置的全文本搜索功能),但是由于单个写入操作而使整个表被锁定的想法使我陷入困境。行级锁具有更大的意义(更不用说InnoDB在处理大型表时的其他速度优势)。因此,基于这个原因,我决心使用InnoDB。 问题是... InnoDB没有内置的全文本搜索功能。 我应该使用第三方搜索系统吗?像Lucene(c ++) / Sphinx吗?你们中的任何数据库忍者有任何建议/指导吗?LinkedIn的zoie(基于Lucene)目前看来是最好的选择...是围绕实时功能构建的(这对我的应用程序而言非常关键。)我有点犹豫,但还没有深入的了解... (仅供参考:将在具有高内存绑定的EC2上使用PHP服务前端)


9
MySQL中的UUID性能?
我们正在考虑将UUID值用作MySQL数据库的主键。所插入的数据是由数十,数百甚至数千台远程计算机生成的,并且以每秒100-40,000次插入的速度插入,我们将永远不会进行任何更新。 在我们开始选择数据之前,数据库本身通常将获得约5000万条记录,因此不是庞大的数据库,也不是很小的数据库。我们也计划在InnoDB上运行,但是如果我们有更好的引擎来进行我们的工作,我们愿意改变它。 我们已经准备好使用Java的Type 4 UUID,但是在测试中已经看到了一些奇怪的行为。一方面,我们将其存储为varchar(36),但现在我意识到使用Binary(16)会更好-尽管我不确定有多少更好。 更大的问题是:当我们拥有5000万条记录时,此随机数据对索引的破坏有多严重?如果我们使用例如类型1的UUID标记最左边的比特,我们会更好吗?还是我们应该完全放弃UUID并考虑使用auto_increment主键? 我正在寻找有关不同类型的UUID在MySQL中作为索引/主键存储时的性能的一般想法/提示。谢谢!

7
#1025-将'./database/#sql-2e0f_1254ba7'重命名为'./database/table'时出错(错误号:150)
因此,我试图向数据库中的一个表添加主键。现在,它具有这样的主键: PRIMARY KEY (user_id, round_number) 其中user_id是外键。 我正在尝试将其更改为: PRIMARY KEY (user_id, round_number, created_at) 我在phpmyadmin中通过单击表结构视图中的主键图标来执行此操作。 这是我得到的错误: #1025 - Error on rename of './database/#sql-2e0f_1254ba7' to './database/table' (errno: 150) 它是带有InnoDB表引擎的MySQL数据库。

3
mysqldump仅导出一张表
我正在使用mysqldump导出数据库,如下所示: mysqldump -u root -ppassword my_database > c:\temp\my_database.sql 不知何故,它只导出一张表。我做错什么了吗?

14
我应该不算(*)吗?
我知道执行这样的查询通常不是一个好主意: SELECT * FROM `group_relations` 但是,当我只想计数时,我应该进行此查询,因为这允许更改表,但仍产生相同的结果。 SELECT COUNT(*) FROM `group_relations` 或更具体 SELECT COUNT(`group_id`) FROM `group_relations` 我觉得后者可能会更快,但是还有其他需要考虑的事情吗? 更新:在这种情况下,我使用的是InnoDB,对不起,因为它不够具体。


4
什么是MySQL数据库引擎?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 我环顾四周,发现一些MySQL引擎是innodb和MyISAM。也许还有更多。我的问题是这些数据库引擎是什么? 不同的MySQL引擎之间有什么区别?更重要的是,我该如何决定使用哪个?

1
MySQL的默认ON DELETE行为是什么?
我正在尝试解析MySQL文档。他们可能会更清楚。他们似乎在说的是,有五种可能性:SET NULL,NO ACTION,RESTRICT,CASCADE和SET DEFAULT。 NO ACTION和RESTRICT会执行相同的操作(防止破坏FK的任何数据库更改),并且该操作是默认操作,因此,如果省略ON DELETE子句,则表示NO ACTION(或RESTRICT -是相同的操作)。 SET NULL允许删除父行,将FK设置为​​NULL。 CASCADE删除子行。 SET DEFAULT应该永远不被使用。 这或多或少是正确的吗?
71 mysql  innodb 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.