面试题答案
一键面试- 表结构设计:
- 假设表名为
high_precision_timestamps
,除了时间戳字段外,还可以有一个自增主键字段id
(如果业务需要唯一标识每一条记录)。
CREATE TABLE high_precision_timestamps ( id INT AUTO_INCREMENT PRIMARY KEY, timestamp_ns BIGINT NOT NULL );
- 假设表名为
- 数据类型选择:
BIGINT
用于存储纳秒级精度的时间戳。因为纳秒级时间戳数值较大,BIGINT
(8字节,可表示范围 -9223372036854775808 到 9223372036854775807)能够满足存储需求。
- 索引创建:
- 为了支持高效的时间范围查询,在
timestamp_ns
字段上创建索引。
CREATE INDEX idx_timestamp_ns ON high_precision_timestamps (timestamp_ns);
- 如果经常按时间范围查询的同时还会关联其他条件,可能需要考虑创建复合索引。例如,如果还会按某个业务类型字段
business_type
查询,可以创建如下复合索引:
复合索引的顺序很重要,最常用的查询条件字段放在前面,这里时间范围查询更频繁,所以CREATE INDEX idx_timestamp_business_type ON high_precision_timestamps (timestamp_ns, business_type);
timestamp_ns
在前。 - 为了支持高效的时间范围查询,在