暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql ocp题库解析-011

原创 会UI设计的dba 2025-06-08
124

Examine the structure of the city table:
±------------±---------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±------------±---------±-----±----±--------±---------------+
| ID | int | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| CountryCode | char(3) | NO | | | |
| District | char(20) | NO | | | |
| Population | int | NO | MUL | 0 | |
±------------±---------±-----±----±--------±---------------+

Now examine this statement and output with a placeholder :

EXPLAIN SELECT Name, Population FROM City WHERE Population=100231\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: city
partitions: NULL
type: ref
possible_keys: pop_idx
key: pop_idx
key_len:
ref: const
rows: 1
filtered: 100
Extra: NULL

What is the value of keylength?
A)1
B)6
C)2
D)100231
E)4
F)5

问题分析

  • 表结构:city 表中 Population 字段为 int 类型,且 NOT NULLNull 列为 NO)。
  • 查询语句:EXPLAIN SELECT Name, Population FROM City WHERE Population=100231\G
  • EXPLAIN 输出:使用索引 pop_idxpossible_keyskey 均为 pop_idx),typerefrefconst,表示通过常量值进行索引查找。
  • 需要确定 key_len(索引键长度)的值。

key_len 的含义

  • key_lenEXPLAIN 输出中表示索引键使用的字节数,具体取决于索引列的数据类型和是否为 NULL
  • 对于 int 类型:
    • int 在 MySQL 中固定占用 4 字节
    • 如果列是 NOT NULL,索引键长度就是数据类型大小(4 字节),无需额外字节存储 NULL 标志。
  • 本场景中:
    • 索引 pop_idx 基于 Population 列(查询条件仅涉及 Population)。
    • Populationint NOT NULL,因此索引键长度应为 4 字节。

错误选项分析

  • A) 1:可能对应 TINYINT(1 字节),但 Populationint
  • B) 6:可能源于字符串索引或复合索引的计算,但这里 Population 是单列 int 索引。
  • C) 2:可能对应 SMALLINT(2 字节),但 Populationint
  • D) 100231:是查询中的值,与索引长度无关。
  • F) 5:可能出现在 NULLable 列(4 字节 + 1 字节 NULL 标志),但 PopulationNOT NULL

正确答案

  • E) 4:因为 Populationint NOT NULL,索引键长度为 4 字节。

验证

  • 在 MySQL 中,int 类型固定 4 字节,NOT NULL 列无额外开销。
  • EXPLAIN 输出中 ref: constrows: 1 进一步确认索引被完整使用(等值查询)。

结论:keylength 的值为 4(选项 E)。

最后修改时间:2025-06-08 09:57:06
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论