标签: myisam

将表从MyISAM更改为InnoDB会使系统变慢

嗨,我使用的是Mysql 5.0.x.

我刚刚将很多表从MyISAM改为InnoDB

使用MyISAM表大约需要1分钟来安装我们的数据库使用InnoDB大约需要15分钟来安装相同的数据库

为什么InnoDB需要这么长时间?

我该怎么做才能加快速度?

数据库安装执行以下步骤

1)删除架构

2)创建架构

3)创建表

4)创建存储过程

5)插入默认数据

6)通过存储过程插入数据

编辑:

大多数情况下,插入默认数据

mysql myisam innodb

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

UPDATE、DELETE 然后 INSERT 或 REPLACE INTO:最快/可扩展的 MySQL(MyISAM) 方法

我有一个全天定期更新的表,所以我正在寻找最可扩展的更新行的方法。这些更新是大批量进行的,因此每次更新可能包含大约 1000 行。

目前,我正在遍历这 1000 行中的每一行并运行一个更新查询……虽然执行时间不长,但与一个简单的批量插入语句相比,它似乎很浪费。所以 REPLACE INTO 是有道理的,因为它基本上删除旧行并插入新行,但这与手动“删除数组中的 where id”然后批量插入相比如何?完全一样的?稍微不一样?有没有更好的方法?

这里的关键是这些不是单行查询,而是批量行查询。所以问题是,运行这些更新的最具可扩展性的方式是什么。我说“可扩展”而不是“最快”,因为这些更新在有活跃用户的生产服务器上定期发生,所以速度很重要,但不是以锁定服务器为代价。

php mysql myisam

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

行大小太大(> 8126)我可以将 InnoDB 更改为 MyISAM

我有这个错误:

行大小太大 (> 8126)。将某些列更改为TEXTorBLOB或使用ROW_FORMAT=DYNAMICorROW_FORMAT=COMPRESSED可能会有所帮助。在当前的行格式中,BLOB768 字节的前缀是内联存储的。

为了解决这个问题,我可以将 InnoDB 更改为 MyISAM 吗?

mysql myisam innodb

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

每秒超过100次插入查询使用哪个引擎

每秒超过100次插入查询使用哪个引擎

我阅读了 MYISAM 和 Innodb 的差异和优缺点。
但我仍然对表中的 100 多个插入查询(主要用于跟踪目的)感到困惑,我应该使用哪个数据库。

我参考了MyISAM和InnoDB有什么区别?
根据我的理解,对于每次插入,MYISAM 都会锁定表,因此应该使用 innodb 进行行锁定。
但另一方面,MYISAM 的性能要好 100 倍。


那么最佳且正确的选择应该是什么?为什么?

mysql myisam innodb

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

停止 MYISAM 表的表锁

我有一个 MYISAM 表,在该表上执行了长时间运行的 SELECT 语句。这些语句是否会导致正在读取的表上的锁?如果是这样,您如何阻止锁定发生?

根据https://dev.mysql.com/doc/refman/5.7/en/internal-locking.html

MySQL 对 MyISAM、MEMORY 和 MERGE 表使用表级锁定,一次只允许一个会话更新这些表。这种锁定级别使这些存储引擎更适合只读、多读或单用户应用程序。

这是否也意味着SELECT语句会创建锁?

mysql multithreading myisam

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

MySQL中按日期时间范围选择非常慢

我的表有posts超过 650 万条记录。每个帖子都使用固定长度表示name。我使用 MySQL Community 5.7,SSD 磁盘,大约 10K-20K IOPS 和 1GB 内存,key-buffer-size设置为 512M(顺便说一句,我主要使用默认 MySQL 配置驱动)。我的资源有限,因此我选择 MyISAM 作为我的存储引擎。我的基准测试表明,就我而言,MyISAM 更快。而且我不太关心数据,因为它可以更新。

所以,这是我的计划信息:

+------------+--------+------------+
| TABLE_NAME | ENGINE | row_format |
+------------+--------+------------+
| posts      | MyISAM | Fixed      |
+------------+--------+------------+

+---------------------+---------------------+------+-----+---------+----------------+
| Field               | Type                | Null | Key | Default | Extra          |
+---------------------+---------------------+------+-----+---------+----------------+
| id                  | int(11) unsigned    | NO   | PRI | NULL    | auto_increment |
| name                | char(30)            | NO   | UNI | …
Run Code Online (Sandbox Code Playgroud)

mysql sql database performance myisam

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

未知变量'default-storage-engine = myisam'

我正在尝试配置Mysql(Ver 14.15 Distrib 6.0.8-alpha,for Win64)以在Windows 7上使用MyISAM作为默认存储引擎.我创建了C:\ my.cnf,其中包含以下内容:

[mysql]
default-storage-engine=myisam
Run Code Online (Sandbox Code Playgroud)

并重新启动mysql服务并尝试从控制台运行mysql后,我收到以下错误消息:

mysql: unknown variable 'default-storage-engine=myisam'
Run Code Online (Sandbox Code Playgroud)

我一直在使用教程,并将上述内容直接复制并粘贴到my.cnf文件中.

我尝试了以下组合:

set default-storage-engine=myisam
storage-engine=mysiam
set storage-engine=mysiam
Run Code Online (Sandbox Code Playgroud)

mysql myisam storage-engines

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

MYISAM分片与使用InnoDB相比

我有一个表具有非常高的插入率和更新率以及读取率.平均每秒插入和更新大约100行.每秒大约有1000个选择.

该表有大约1亿个元组.这是一个关系表,所以它只有大约5个字段.三个字段包含键,因此它们被索引.所有字段都是整数.

我正在考虑对数据进行分片,但是,它增加了很多复杂性,但确实提供了速度.另一种选择是使用innodb.

该数据库运行在256GB ssd的raid 1上,32GB 1600mhz的RAM和i7 3770k,时钟频率为4Ghz

数据库在高峰时间不断冻结,其中查询可以高达插入或更新200行,每秒2500次选择

你们可以指出我应该做什么吗?

mysql database myisam innodb

0
推荐指数
1
解决办法
888
查看次数

结合LIKE和AND的SQL给了我错误的结果

SELECT * FROM table WHERE column LIKE '%whatever%' AND id='1' OR id='2' OR id='3'
Run Code Online (Sandbox Code Playgroud)

当使用上面的代码时,我回到了三行而不是那一行
column LIKE '%whatever%'
我发现它很奇怪,并且无法理解为什么.

如何重写我的sql代码以使用LIKE来检查具有id ='whatever'的sevral行

我使用MYSQL和MyISAM

mysql sql myisam

0
推荐指数
1
解决办法
320
查看次数

MyISAM 是否存在丢失数据的风险?

我有一系列 MyISAM 数据库表,并且正在阅读一些关于它在完整性方面不如 InnoDB 的观点。不过,具体来说,该帖子继续说道,似乎表明您有可能丢失数据。我当然找不到链接(典型的运气是吗?)但我确实记得上面建议的外卖。

插入期间是否有可能丢失实际行?我的假设是这不是真的,但我会对社区的言论感兴趣。

谢谢!

mysql database myisam

0
推荐指数
1
解决办法
341
查看次数

AWS RDS aurora Mysql 5.6 无法使用与默认引擎不同的引擎创建表

问题:无法在 AURORA MySQL 5.6 RDS 上使用 MyISAM 存储引擎创建表

配置:

我有RDSAurora MySQL 5.6.10a.

default_storage_engine设置为InnoDB且无法修改 ( Modifiable = false)。

当我运行命令时

SHOW ENGINES
Run Code Online (Sandbox Code Playgroud)

我收到:

+----------+---------+-------------------------+--------------+------+------------+
| Engine   | Support | Comment                 | Transactions | XA   | Savepoints |
+----------+---------+-------------------------+--------------+------+------------+
| 'MyISAM' | 'YES'   | 'MyISAM storage engine' | 'NO'         | 'NO' | 'NO'       |
+----------+---------+-------------------------+--------------+------+------------+
Run Code Online (Sandbox Code Playgroud)

我的目标:

创建带有MyISAM搜索引擎的表。

会发生什么:

当我尝试使用命令创建表时:

CREATE TABLE `myTable` (
  `myTableId` int(11) NOT NULL AUTO_INCREMENT,
  `latLong` point NOT NULL,
  `createdAt` …
Run Code Online (Sandbox Code Playgroud)

mysql myisam amazon-web-services amazon-rds amazon-aurora

0
推荐指数
1
解决办法
3417
查看次数