这个问题在这里已经有了答案:MyISAMversusInnoDB[closed](25个回答)关闭9年前。我知道这个问题以前曾被问过,但大多数时候是针对特定数据库或表提出的。我无法在此站点上找到描述这两个引擎及其差异的答案,而不考虑某人的特定数据库。我希望将来能够在设计表或数据库方面做出更明智的决定,因此我正在寻找关于两种存储引擎之间差异的全面答案。MyISAM和有什么区别?和InnoDB,当我试图在其中一个或另一个之间做出决定时,我应该寻找什么? 最佳答案 InnoDB和MyISAM之间的主要区别(“关于设计表或数据库”您询问)是
我的MySQL数据库包含多个使用不同存储引擎的表(特别是myisam和innodb)。我怎样才能找出哪些表是使用哪个引擎? 最佳答案 SHOWTABLESTATUSWHEREName='xxx'这会给你(除其他外)一个Engine列,这是你想要的。 关于mysql-如何检查特定表的MySQL引擎类型?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/213543/
我的MySQL数据库包含多个使用不同存储引擎的表(特别是myisam和innodb)。我怎样才能找出哪些表是使用哪个引擎? 最佳答案 SHOWTABLESTATUSWHEREName='xxx'这会给你(除其他外)一个Engine列,这是你想要的。 关于mysql-如何检查特定表的MySQL引擎类型?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/213543/
我有一个MySQL表,它将url存储为唯一键。我开始在我的key上发生冲突,因为key本身似乎只是任何url的前64个字节(或者如果你愿意的话,它是一个latin-1字符)。因此,如果一个url超过64个字符,而我已经有一个类似的url,它就会抛出一个错误。例如:SELECTl.link_idFROMmydb.linkslWHEREurl='http://etonline.com/tv/108475_Charlie_Sheen_The_People_Have_Elected_Me_as_Their_Leader/index.html'抛出这个错误:SQLSTATE[23000]:Int
我有一个包含1700万行的表。我需要获取该表的1列并将其全部插入到另一个表中。这是我所做的:INSERTIGNOREINTOtable1(name)SELECTnameFROMmainWHEREIDInnoDB执行大约需要3分45秒但是,MyISAM的执行时间不到4秒。为什么不同?我看到每个人都在称赞InnoDB,但老实说,我看不出它对我有什么好处。它慢得多。我知道这对完整性和诸如此类的东西很有好处,但我的许多表格都不会更新(只是阅读)。我是否应该为InnoDB而烦恼? 最佳答案 差异很可能是由于innoDB的配置所致,它比myIS
我读过各种关于InnoDB和MyISAM哪个更好的帖子。看来辩论是要用orother。根据表格的不同,是否不能同时使用两者?这样做有什么缺点?据我所知,可以在CREATETABLE命令期间设置引擎。因此,某些经常被读取的表可以设置为MyISAM,而需要事务支持的表可以使用InnoDB。 最佳答案 您可以在同一个数据库中同时拥有MyISAM和InnoDB表。但是您会发现,当表非常大时,MyISAM会导致表锁定问题。这最终所做的是,它会为单个事务锁定整个表,如果您有很多用户使用您的网站,这将非常糟糕。例如,如果您有一个用户在您的站点上搜
我正在插入一个简单的小表,其中包含5个属性和1000行。我观察到当引擎是INNODB时,每次插入需要0.03-0.05秒。我将引擎更改为MYISAM,然后插入速度更快。它需要0.001-0.003。什么问题。innodb_flush_log_trx_commit=默认为1。我就是这个设置。这是我的innodb设置。innodb_log_buffer_size:1MBinnodb_log_file_size:5MBinnodb_buffer_pool_size:8MBinnodb_flush_log_trx_commit=1我无法弄清楚这到底出了什么问题。提前致谢。问候,乌日
我有这些小表,item和category:CREATETABLE`item`(`id`mediumint(8)unsignedNOTNULLAUTO_INCREMENT,`name`varchar(150)NOTNULL,`category_id`mediumint(8)unsignedNOTNULL,PRIMARYKEY(`id`),KEY`name`(`name`),KEY`category_id`(`category_id`))CHARSET=utf8CREATETABLE`category`(`id`mediumint(8)unsignedNOTNULLAUTO_INCREME
在MyISAM表的phpMyAdminv2.8.2.4中,“关系View”出现在“结构”选项卡下。它显示了内部关系列表。但是,鉴于MyISAM不支持外键约束或关系完整性,这些有什么用呢?在phpMyAdmin版本3.2.0.1中,此页面(“关系View”)不再出现在MyISAM表中。那么这是否意味着它一开始就没有做任何事情?非常感谢任何解释。贾斯汀 最佳答案 MyISAM中的外键仅供引用。您可以查看它们以查看引用完整性将在哪里(如果有的话)。以这种方式理解模式比通过查看作为副作用创建的索引来猜测关系更容易。我不知道为什么它会在p
我一直在读到将LONGBLOG与INNODB结合使用会对性能产生巨大影响。这是真的?(我将存储图像) 最佳答案 我不知道,但Innodb非常快,而且它当然支持大blob。如果您决心将图像放入数据库,我建议您尝试一下,看看效果如何。我可以告诉你,处于你这种情况的人最终倾向于在数据库外部设置一个单独的文件系统来存储大blob(在你的情况下是图像),使用数据库来保存这些文件的元数据。抛开您的性能问题,这归结为成本问题。数据库服务器既昂贵又关键:用大量无法查询(更不用说索引)的数据填充它们并不是一件好事。