本站已将xiuno的数据库存储引擎从MyISAM切换到InnoDB
CF
管理员组 管理员组
2025-03-08 15:14
楼主

先了解差异,然后备份数据库,再执行切换。

 

了解差异

以下是MySQL中常用的InnoDB和MyISAM两个存储引擎差异。这两个引擎在MySQL数据库中有着广泛的应用,各自具有独特的特点和适用场景。

InnoDB与MyISAM的差异

  InnoDB MyISAM
事务支持 支持ACID事务(原子性、一致性、隔离性、持久性),提供COMMIT、ROLLBACK和SAVEPOINT等事务控制功能。 不支持事务,数据一致性只能依赖应用层控制。
锁机制 采用行级锁定,提高了并发性能,适合频繁的读写操作。 使用表级锁定机制,在高并发写操作下性能较差。
外键约束 支持外键约束,能确保数据的完整性和一致性。 不支持外键。
崩溃恢复 采用了崩溃恢复机制(通过重做日志和回滚日志),在崩溃后可以自动恢复数据。 不支持崩溃恢复,发生崩溃时,可能需要手动修复表。
性能 在读写混合的场景下,由于支持行级锁和外键等特性,性能可能略低于MyISAM(在特定场景下)。但随着MySQL版本的更新,InnoDB的性能得到了不断优化。 在读操作远远多于写操作的场景下,性能优于InnoDB,因为表级锁减少了锁竞争。
存储效率 相较于MyISAM,InnoDB的存储效率可能稍低,因为需要维护额外的事务日志和索引信息。 MyISAM表的存储效率较高,磁盘占用较小。
全文索引 在MySQL 5.6及之后的版本中,InnoDB也支持全文索引。但在此之前,仅MyISAM支持全文索引。 支持全文索引,适用于需要全文搜索的应用场景。
适用场景 需要事务处理的系统,如银行、财务系统等对数据一致性要求较高的场景。以及高并发的读写操作场景。 读操作远远多于写操作的场景。不需要事务和外键约束的系统,如一些数据仓库或数据分析应用。

切换步骤

直接在数据库执行以下命令:(注意你的数据库表可能跟我的不一样)

ALTER TABLE bbs_attach ENGINE=InnoDB;
ALTER TABLE bbs_attach_buy ENGINE=InnoDB;
ALTER TABLE bbs_cache ENGINE=InnoDB;
ALTER TABLE bbs_darkroom ENGINE=InnoDB;
ALTER TABLE bbs_favorite ENGINE=InnoDB;
ALTER TABLE bbs_forum ENGINE=InnoDB;
ALTER TABLE bbs_forum_access ENGINE=InnoDB;
ALTER TABLE bbs_group ENGINE=InnoDB;
ALTER TABLE bbs_kv ENGINE=InnoDB;
ALTER TABLE bbs_modlog ENGINE=InnoDB;
ALTER TABLE bbs_mypost ENGINE=InnoDB;
ALTER TABLE bbs_mythread ENGINE=InnoDB;
ALTER TABLE bbs_notice ENGINE=InnoDB;
ALTER TABLE bbs_post ENGINE=InnoDB;
ALTER TABLE bbs_post_search ENGINE=InnoDB;
ALTER TABLE bbs_post_update_log ENGINE=InnoDB;
ALTER TABLE bbs_questions ENGINE=InnoDB;
ALTER TABLE bbs_queue ENGINE=InnoDB;
ALTER TABLE bbs_session ENGINE=InnoDB;
ALTER TABLE bbs_session_data ENGINE=InnoDB;
ALTER TABLE bbs_table_day ENGINE=InnoDB;
ALTER TABLE bbs_thread ENGINE=InnoDB;
ALTER TABLE bbs_thread_digest ENGINE=InnoDB;
ALTER TABLE bbs_thread_search ENGINE=InnoDB;
ALTER TABLE bbs_thread_top ENGINE=InnoDB;
ALTER TABLE bbs_tiny ENGINE=InnoDB;
ALTER TABLE bbs_user ENGINE=InnoDB;
ALTER TABLE bbs_user_points_log ENGINE=InnoDB;
ALTER TABLE bbs_viewlog ENGINE=InnoDB;

 

然后使用下面命令来查看当前数据库中所有表的状态信息,包括它们的存储引擎:(注意修改数据库名称)

SHOW TABLE STATUS FROM your_database_name;
找不到工作/(ㄒoㄒ)/~~

 收藏 分享
最新回复 (0)
    暂无回复,快来抢沙发吧

    暂无回复,快来抢沙发吧

  • 游客
    沙发
    登录 后参与评论
返回
CF
管理员组
主题数
帖子数
精华数