关于innodb的疑问
一直在用MariaDB_10.3.23,相当于MySQL 5.5.5在数据库的设置中,跳过了innodb
这样的设定可以正常安装X3.5,config_global.php中却是$_config['db']['common']['engine'] = 'innodb';
将其改为:$_config['db']['common']['engine'] = 'myisam'; 也没有什么问题
难道,在MySQL中设置跳过innodb,安装完的X3.5是myisam?
在Discuz X3.5中,默认情况下,数据库表会使用InnoDB存储引擎。InnoDB是MySQL和MariaDB中常用的存储引擎,它支持事务、行级锁定和外键等高级功能,适合处理高并发的场景。
如果你在MySQL或MariaDB中跳过了InnoDB存储引擎(例如通过设置`--skip-innodb`参数),那么数据库将无法使用InnoDB引擎。在这种情况下,Discuz X3.5在安装时会自动回退到使用MyISAM存储引擎。
### 关于`$_config['db']['common']['engine']`的设置
在Discuz的配置文件`config_global.php`中,`$_config['db']['common']['engine']`用于指定数据库表的存储引擎。默认情况下,这个值设置为`'innodb'`,表示使用InnoDB引擎。
如果你将其改为`'myisam'`,Discuz会尝试使用MyISAM引擎来创建表。MyISAM是另一种常见的存储引擎,它不支持事务和行级锁定,但在某些场景下(如读多写少的场景)性能较好。
### 你的情况
1. **跳过了InnoDB**:如果你在MySQL/MariaDB中跳过了InnoDB,那么即使`$_config['db']['common']['engine']`设置为`'innodb'`,Discuz也无法使用InnoDB引擎。在这种情况下,Discuz会自动使用MyISAM引擎来创建表。
2. **修改为MyISAM**:如果你手动将`$_config['db']['common']['engine']`改为`'myisam'`,那么Discuz会明确使用MyISAM引擎来创建表。这与跳过InnoDB的效果是类似的,但更加明确。
### 总结
- 如果你跳过了InnoDB,Discuz会自动使用MyISAM引擎。
- 如果你手动将`$_config['db']['common']['engine']`改为`'myisam'`,Discuz也会使用MyISAM引擎。
因此,无论你是跳过了InnoDB还是手动修改了配置,最终的结果都是Discuz使用了MyISAM引擎。
### 建议
- **InnoDB的优势**:如果你不需要跳过InnoDB,建议使用InnoDB引擎,因为它支持事务和行级锁定,更适合高并发的场景。
- **MyISAM的适用场景**:如果你的站点主要是读多写少,且不需要事务支持,MyISAM也是一个不错的选择。
如果你有其他关于Discuz或数据库的问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]