- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在学习数据库数据类型的使用。
例如:
Unless you are using the InnoDB tabletypes (see Chapter 11, "AdvancedMySQL," for more information), CHARcolumns are faster to access thanVARCHAR.
最佳答案
简要总结:
(只是我的意见)
VARCHAR(255)
VARCHAR(100)
或 VARCHAR(255)
INT
(除非您计划在您的系统中拥有超过 20 亿用户)INT
或 VARCHAR
或者 CHAR
(取决于您是否要存储格式)TEXT
DATE
或 DATETIME
(绝对包括帖子或电子邮件之类的时间)DECIMAL(11,2)
VARCHAR
应该更快,我不会担心,或者一般的速度。使用 InnoDB 是因为您需要执行事务和/或您想使用外键约束 (FK) 来确保数据完整性。此外,InnoDB 使用行级锁定,而 MyISAM 仅使用表级锁定。因此,InnoDB 可以比 MyISAM 更好地处理更高级别的并发。使用 MyISAM 来使用全文索引并减少开销。
tinyint
几乎所有事情(严重)。
CHAR
最大长度是 255,所以这不是一个选项,当然
CHAR
与
VARCHAR
相比,会浪费未使用的字符,这是可变长度
CHAR
.
VARCHAR
最大长度是 255,所以你会剩下
TEXT
.但是,在较新版本的 MySQL 中,您可以使用
VARCHAR
或
TEXT
.选择归结为偏好,但存在一些差异。
VARCHAR
和
TEXT
最大长度现在都是 65,535,但您可以在
VARCHAR
上设置您自己的最大长度.假设您认为您的帖子最多只需要 2000,您可以设置
VARCHAR(2000)
.如果你每次都遇到极限,你可以
ALTER
稍后您将 table 撞到
VARCHAR(3000)
.另一方面,
TEXT
实际上将其数据存储在
BLOB
中(1).我听说
VARCHAR
之间可能存在性能差异和
TEXT
,但我还没有看到任何证据,因此您可能想进一步研究,但您将来可以随时更改该小细节。
LIKE
搜索此“post”列。会快得多(2)。然而,
您必须使用 MyISAM 引擎才能使用全文索引,因为 InnoDB 不支持它 .在 MySQL 数据库中,您可以为每个表使用异构引擎组合,因此您只需要让“posts”表使用 MyISAM。但是,如果您绝对需要“posts”来使用 InnoDB(用于事务),那么设置一个触发器来更新“posts”表的 MyISAM 副本,并使用 MyISAM 副本进行所有全文搜索。
(3) "Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions.
Before MySQL 5.0.3, if you need a data type for which trailing spaces are not removed, consider using a BLOB or TEXT type.
When CHAR values are stored, they are right-padded with spaces to the specified length. When CHAR values are retrieved, trailing spaces are removed.
Before MySQL 5.0.3, trailing spaces are removed from values when they are stored into a VARCHAR column; this means that the spaces also are absent from retrieved values."
关于mysql - 如何为列选择优化数据类型 [innodb specific]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286738/
我是一名优秀的程序员,十分优秀!