- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
根据MySQL website , key_len
列表示 MySQL 决定使用的键的长度。如果键列为 NULL
,则长度为 NULL
。请注意,key_len 的值使您能够确定 MySQL 实际使用多部分 key 的多少部分。
使用我的 previous question 中的示例,我有一个 EXPLAIN SELECT 语句显示 MySQL 使用 Index
和 key_len: 6
。下面显示了所使用的索引和列的组成。
`Type` char(1) NOT NULL,
`tn` char(1) NOT NULL DEFAULT 'l',
`act` tinyint(1) unsigned NOT NULL DEFAULT '0',
`flA` mediumint(6) unsigned NOT NULL DEFAULT '0',
KEY `Index` (`Type`, `tn`, `act`, `flA`)
那么 key_len
的值如何让我确定我的查询使用了多部分键的前三部分?
最佳答案
key_len 指定 MySQL 从 key 中使用的字节数。
索引总是从左到右使用。即只使用最左边的部分。
你的字段长度如下:
1 byte `Type` char(1) NOT NULL,
1 byte tn char(1) NOT NULL DEFAULT 'l',
1 byte act tinyint(1) unsigned NOT NULL DEFAULT '0',
3 bytes flA mediumint(6) unsigned NOT NULL DEFAULT '0',
1+1+1+3 = 6 bytes KEY `Index` (`Type`, `tn`, `act`, `flA`)
key usage always starts here ---^^^^^
如果 key_len = 3 则它使用 type+tn+act
。
请注意,Key_len = 4 在此配置中是不可能的。
关于mysql - 在解释语句中理解 MySQL key_len,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7643491/
使用 innodb,我在 (int,date) 上有一个索引。 当我对使用索引的查询运行解释时,我看到 key_len 为 9。 这对我来说没有意义。 int 占用 4 个字节。日期占用 3 个字节。
根据MySQL website , key_len 列表示 MySQL 决定使用的键的长度。如果键列为 NULL,则长度为 NULL。请注意,key_len 的值使您能够确定 MySQL 实际使用多部
我在 AWS 中有一个生产数据库,但本地主机中的相同数据库要快得多(25 秒 VS 7 秒),做了一些研究,我发现相同 SQL 中存在差异: EXPLAIN extended SELECT * FRO
判断mysql索引的key_len是否“太长”的一般参数是什么? 例如,对于较长的 VARCHAR 列,具有键会更长。在一种情况下,我有一个 key_len=767 的索引。在这种情况下我应该做类似的
-- 2 Moderators: please do not re-format my code DROP TABLE IF EXISTS `t`; CREATE TABLE `t` (
我用两种不同类型的索引执行了一个查询。这是他们的结果: 第一种索引: 第二种索引: 如您所见,第一个在 “key_len” 列中有更大的数字。第二个在“行”列中有更大的数字。 我想知道,哪个更有效率?
我正在为 mysql 查询添加索引,下面是查询。 SELECT * FROM JOBSEEKER WHERE JOBSEEKER.VCEMAIL='godavary@gmail.com
我是一名优秀的程序员,十分优秀!