标签: myisam

将 MyISAM 转换为 InnoDB 会导致问题吗?

我正在更改仍在 MyISAM 中的旧 MySQL 数据库表。我想将其更改为 InnoDB,但我不知道它是否会导致问题,而且它是一个非常重要的表,因此我不想破坏任何内容。

所以我的问题是:当我将 MyISAM 表转换为 InnoDB 时会导致问题吗?

mysql innodb myisam

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

为什么 MySQL 存储引擎在一种情况下在恢复时发生变化?

在我的生产数据库生活中,发生过一次悲剧,在恢复最近的备份时,MySQL 引擎类型从 InnoDB 意外更改为 MyISAM。结果是所有参照完整性都丢失了。

是什么导致了这一事件?我的生产数据库是 MySQL Server 5.1。

mysql innodb myisam

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

mySQL 数据表似乎卡在 16777215 行

我正在创建一个 MySQL 表并从本地文件加载数据。

CREATE TABLE `patent` (

  `seq_number` mediumint(9) unsigned NOT NULL auto_increment,
  `seq_id` varchar(24) default NULL,
  `date` date default NULL,
  `patent_number` varchar(16) default NULL,
  `pat_seq_number` smallint(6) unsigned default '0',
  `organism` text,
  `assignee` text,
  `seq_length` int(8) default '0',
  `seq` text,
  PRIMARY KEY  (`seq_number`),
  Index `seq_id` (`seq_id`),
  Index `patent_number` (`patent_number`),
  Index `pat_seq_number` (`pat_seq_number`),
  Index `seq_length` (`seq_length`)

) Engine = MyISAM MAX_ROWS=536870912;


load data local infile '/data/p_table.txt' into table  patent ignore 0 lines 
(seq_id, date, patent_number, pat_seq_number, organism, assignee, seq, seq_length);
Run Code Online (Sandbox Code Playgroud)

似乎我被困在行数上: …

mysql myisam mysql-5.1

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

为 MyISAM 和 InnoDB 配置 MySQL (my.cnf)

我想将一些(不是全部)MyISAM 表转换为 InnoDB。

最好的配置是什么?(需要添加InnoDB设置,因为我的里面没有InnoDB设置my.cnf)。

显示引擎

mysql innodb myisam

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

MyISAM 与 InnoDB 论坛

我想用MySql 设计一个论坛脚本。哪个数据库引擎会有更好的性能?MyISAM 还是 InnoDB?

mysql innodb myisam

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

从 MyISAM 转换为 InnoDB 后 FTS_ 文件是什么意思?

我已将数据库中的一些表从 MyISAM 转换为 InnoDB。之后,我看到文件系统上有一些修改。

数据库的大小增加了,从 2.8GB 到 4.8GB 并且有很多带有前缀 FTS_* 的文件,例如

FTS_000000000000005c_00000000000000f3_INDEX_1.ibd FTS_000000000000005c_00000000000000f3_INDEX_2.ibd FTS_000000000000005c_00000000000000f3_INDEX_3.ibd FTS_000000000000005c_00000000000000f3_INDEX_4.ibd FTS_000000000000005c_00000000000000f3_INDEX_5.ibd FTS_000000000000005c_00000000000000f3_INDEX_6.ibd FTS_000000000000005c_BEING_DELETED_CACHE.ibd FTS_000000000000005c_BEING_DELETED.ibd FTS_000000000000005c_CONFIG.ibd FTS_000000000000005c_DELETED_CACHE.ibd FTS_000000000000005c_DELETED.ibd FTS_0000000000000075_0000000000000118_INDEX_1.ibd FTS_0000000000000075_0000000000000118_INDEX_2.ibd FTS_0000000000000075_0000000000000118_INDEX_3.ibd FTS_0000000000000075_0000000000000118_INDEX_4.ibd FTS_0000000000000075_0000000000000118_INDEX_5.ibd FTS_0000000000000075_0000000000000118_INDEX_6.ibd FTS_0000000000000075_BEING_DELETED_CACHE.ibd FTS_0000000000000075_BEING_DELETED.ibd FTS_0000000000000075_CONFIG.ibd FTS_0000000000000075_DELETED_CACHE.ibd FTS_0000000000000075_DELETED.ibd

我正在使用 MariaDB 并打开 innodb_file_per_table。

innodb myisam mariadb

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

我应该选择什么 MySQL 存储引擎?

我的目录网页有一个数据库。有些表大约有 3GB,有数百万行。

我应该为我的数据库选择什么引擎,InnoDB 还是 MyISAM?

每周只会有大约 1,000 条新记录,大约有 1,000 条删除,但我会经常修改一张表中的一些数据(价格、数量等)。所有其他表将被“密封”。

我需要索引来启用快速查询。哪种存储引擎最适合这种情况?

mysql innodb myisam

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

需要在触发器内部更改自动增量值

我已经转换的表有一个小问题,它曾经是 MyISAM,我现在已经把它变成了 InnoDB 表。

原始结构:

id varchar(15),
seqno int(11) auto increment 
Joint PK index on the above 2 fields
Run Code Online (Sandbox Code Playgroud)

新结构:

auto_id INT (11) auto increment,
id varchar(15),
seqno int(11)
Run Code Online (Sandbox Code Playgroud)

原始结构在 id 和 seqno 上有一个联合 PK,seqno 会为每个唯一的 id 值自动递增。然后它会在我的 Web 应用程序中返回 seqno 作为 last_insert_id。

使用新的 innodb 结构,因为 innodb 不支持联合主键,我不得不添加一个 auto_id,它现在具有自动增量。

然后我实现了一个触发器来生成每个 id 值的唯一序列号。我的问题是如何设置自动增量 id 以便它返回代替 auto_id 值?当我插入到 my_table 中时,将调用此触发器,以便它可以计算要插入的下一个 seqno 值。

DROP TRIGGER IF EXISTS `innodb_seqno_trigger`;
//

CREATE TRIGGER `innodb_seqno_trigger` BEFORE INSERT ON `my_table`
 FOR EACH ROW BEGIN

SET @newseqno = …
Run Code Online (Sandbox Code Playgroud)

mysql innodb myisam trigger auto-increment

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

标签 统计

myisam ×8

innodb ×7

mysql ×7

auto-increment ×1

mariadb ×1

mysql-5.1 ×1

trigger ×1