我有一个存储 MD5 哈希的索引列。因此,该列将始终存储 32 个字符的值。无论出于何种原因,它都是作为 varchar 而不是 char 创建的。迁移数据库以将其转换为字符是否值得?这是在带有 InnoDB 的 MySQL 5.0 中。
MyISAM 如何比 InnoDB“更快”,如果
在 MySQL 中 varchar 大小之间是否存在性能差异?例如,varchar(25)和varchar(64000)。如果没有,是否有理由不声明所有具有最大大小的 varchars 以确保您不会用完空间?
由于 RAM 的限制,是否可以让 InnoDB 使用与 MyISAM 相同的索引而不是聚集索引,同时获得其并发性能的好处?
我们有一个 MySQL 5.0 服务器,以 MyISAM 的形式运行所有表。我们有两个奴隶,在上个月,我们已经升级到 MySQL 5.5。他们的表也仍然是 MyISAM。
我原来的计划是把5.0的master升级到5.5,然后转成InnoDB。现在我想知道,在升级之前开始是否更有意义?我一直很谨慎,因为我听说 5.5 下的 InnoDB 比 5.0 下的 InnoDB 快得多。这是没有根据的,我现在应该开始吗?
我有以下问题:我正在设计带有几十个小型查找表的 Web 应用程序:这些表通常包含三列(ID、名称、描述)和几行(大多数少于 50,最大约为 450)。
这些查找表预计很少更改(它们来自标准,几年更改一次)并且仅用于:
SELECT99% 的情况下,这些表上只会有语句,但会有相当多的语句。
我想知道,使用哪种数据库引擎最有效?
以下是我的考虑:
记忆
- 亲:非常快
- con:如果服务器崩溃,所有数据都丢失,需要重新创建
- con:不支持外键
压缩的 MyISAM
- 亲:快
- con:不支持外键
数据库
- 亲:外键支持
我想问的是,使用与InnoDB不同的东西是否会有显着的优势- 性能方面
谢谢,兹比内克
VARCHAR(1000)我的表中有一个列。它将包含不保证唯一的字符串。我有一个查询将此列作为子句的一部分进行搜索WHERE IN,列表中的值列表IN ('...')将约为 100。在最初几个月后,该表可能会包含数百万行。我知道建立索引可能会减慢插入速度并可能创建相当大的索引。
我正在运行 mysql 5.1 并使用 INNODB 引擎。
mysql ×7
innodb ×5
myisam ×4
performance ×3
varchar ×3
index ×2
datatypes ×1
index-tuning ×1
mysql-5.5 ×1