标签: myisam

我无法将myISAM转换为innodb

我做了擦拭和恢复.

  1. 我备份了我当前的innodb表.(mysqldump的)
  2. 我把它加载到数据库中.
  3. 出于某种原因......桌子现在都是myisam而不是innodb ......很奇怪!
  4. 我尝试做:

    ALTER TABLE xxx ENGINE = innodb;

并且它对任何表都没有任何作用.

"显示表状态"仍然是"MyISAM"

mysql> alter table auth_user_user_permissions engine=innodb;
Query OK, 0 rows affected, 1 warning (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0



+------------+----------+----------------------------------------------------------------+
| Engine     | Support  | Comment                                                        |
+------------+----------+----------------------------------------------------------------+
| MyISAM     | DEFAULT  | Default engine as of MySQL 3.23 with great performance         |
| MEMORY     | YES      | Hash based, stored in memory, useful for temporary tables      |
| InnoDB     | DISABLED | Supports transactions, …
Run Code Online (Sandbox Code Playgroud)

mysql database myisam innodb

9
推荐指数
1
解决办法
3470
查看次数

MySQL MyISAM表锁定

从中删除记录时,MySQL MyISAM表是否被锁定?

mysql sql myisam locking

9
推荐指数
1
解决办法
1万
查看次数

哪个MySQL数据库引擎更适合存储会话和会话数据:MyISAM或InnoDB?

非常直截了当的问题.

出于几个原因,我将InnoDB用于其他一切.对于"高流量"的桌子来说,它是否超过MyISAM的性能?

php mysql session myisam innodb

9
推荐指数
1
解决办法
1438
查看次数

MySQL全文搜索vs Like %%

什么是关键差异以及它们的用例是什么?谢谢!

mysql myisam

9
推荐指数
1
解决办法
2023
查看次数

InnoDB与MyISAM插入查询时间

我有一个大的MySQL表(~10万行,6.5G)我用它来读写.这是MyISAM,由于MyISAM对写入的所有表锁定,我得到了很多锁.

我决定尝试转移到推荐用于读/写表的InnoDB,它只锁定写入时的特定行.

转换后,我测试了插入语句,结果表明它在InnoDB表中比在MyISAM表中多花了15倍(从0.1秒到1.5秒).这是为什么?

我还没有为InnoDB配置任何东西,并且还计划添加分区,但这个数字对我来说仍然是出乎意料的.当然表是相同的,相同的索引等.

根据要求提供的其他信息:

2个索引.primary是Big INT类型的data_id,varchar(255)类型的非唯一user_id.

插入大约有150行,具有相同的user_id.

索引大小:MyISAM为200 MB,InnoDB为400 MB

database optimization mysqli myisam innodb

9
推荐指数
1
解决办法
2235
查看次数

MySQL:InnoDB与MyISAM:如何以及为什么要改变(Amazon RDS)?

我没有设置我的数据库并注意到我的一些表是innoDB而其他表是MyISAM.我感兴趣的是改变它们的原因是因为尔格凡弗利特(谁在AWS上写O'Reilly出版),亚马逊RDS的自动备份数据库的能力取决于是InnoDB表中的所有表.

将数据库中的所有表转换为InnoDB的命令是什么?

mysql myisam innodb amazon-web-services amazon-rds

9
推荐指数
1
解决办法
2485
查看次数

在一个数据库上查询速度慢,但速度快

我们有一个Laravel应用程序(版本5.4.18),它连接到MySQL(5.6.38)数据库(总共300k行),MyISAM类型.我们有api-response之类的Model::with('anothermodel')->paginate(25),并且在某些时候这个查询的执行时间已达到18秒,这是非常大的价值.我创建了一个沙盒,其中包含使用exaclty相同数据库(在同一服务器上)的副本的实时laravel环境,现在这个api-response在2.5秒内执行.如果我们尝试将沙盒laravel连接到实时DB,那么api执行再次是18s.请检查图像.

api演示

因此,如果我们假设问题出现在实时网站的数据库表中,但如果我们尝试用这个查询来衡量microtime,那么它将显示生成此查询并从数据库中获取数据所需的时间仅为0.7秒.

因此,如果我们假设问题出现在API路由或Laravel代码中,但是如果我只是将其复制到子目录(作为沙箱),那么执行相同的代码没有任何问题.

有任何想法吗?

还有一些服务器信息:Linux服务器上的PHP 7.0.29,内存为32GB.

mysql database performance myisam laravel

9
推荐指数
1
解决办法
270
查看次数

从MyISAM更改为InnoDB时,您是否需要了解任何陷阱/事项?

我的一个项目在MySQL中使用MyISAM引擎,但我正在考虑将其更改为InnoDB,因为我需要事务支持.

  • 在做这个之前我应该​​看什么或考虑什么?
  • 我可以只更改引擎,还是应该为它准备好数据?

mysql myisam innodb change-management

8
推荐指数
3
解决办法
1194
查看次数

什么时候MyISAM比InnoDB好?

有时我被问到一些采访:InnoDB对MyISAM有什么好处,MyISAM比InnoDB好?关于问题的第一部分,一切都很清楚:InnoDB是交易兼容的,行级阻塞而不是表级阻塞,外键支持和其他一些,这些点只是浮现在脑海中.

但是当MyISAM真的比InnoDB好吗?

mysql myisam innodb

8
推荐指数
2
解决办法
9071
查看次数

制作"标签"系统的最佳方式

这可能是一个问题,我失去了更多的时间来思考如何做到正确,思考以最佳的优化方式去做.

我有一个表"内容",并且需要添加选项以将多个"hashtags"或"tags"或"keywords"关联到内容,例如,像"Fried potatos with ketchup"这样的内容具有"键": "土豆","番茄酱"和"炒".

当我用一个单词进行搜索时,例如"马铃薯",我需要显示其中的内容标记这个单词.

问题是,它的最佳结构是什么,考虑结果的速度,因为内容表是MyISAM mith超过30 Millon行.

我想在这:

再添2个表,"contents_hashtags" (id(INT11), content_id(INT11), hashtag_id(INT11))和"hashtags" (id(INT11), hashtag(VARCHAR(40)))InnoDB中的2个表

当用户创建/修改表格内容时,我在hashtags表中搜索并获取ID,如果不存在的标签,则在表格标签中创建它,如果存在,则获取ID,使用此ID创建插入在表contents_hashtas中关联内容<-contents_hashtas-> hashtahs

在搜索中,使JOINS(LEFT/RIGHT/INNER dude ..)并通过LIKE进行搜索?通过exact(hashtag ="XXX")或FULL TEXT SEARCH?

这种方法是正确/快速的吗?我不知道如何以大排量和大流量来运行它.

php mysql performance myisam innodb

8
推荐指数
1
解决办法
6107
查看次数