You've already forked DataMate
fix(database): 解决数据管理表联合索引长度超限问题
- 为 logical_path 字段创建前缀索引以避免索引长度超限 - 添加注释说明 utf8mb4 下索引长度按字节计算的限制 - 提供后续优化建议:使用 hash 生成列方案替代 VARCHAR 索引
This commit is contained in:
@@ -69,7 +69,9 @@ CREATE TABLE IF NOT EXISTS t_dm_dataset_files (
|
|||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
FOREIGN KEY (dataset_id) REFERENCES t_dm_datasets(id) ON DELETE CASCADE,
|
FOREIGN KEY (dataset_id) REFERENCES t_dm_datasets(id) ON DELETE CASCADE,
|
||||||
INDEX idx_dm_dataset (dataset_id),
|
INDEX idx_dm_dataset (dataset_id),
|
||||||
INDEX idx_dm_dataset_logical_path (dataset_id, logical_path, version),
|
-- 说明:utf8mb4 下索引长度按字节计算(最长 3072 bytes)。logical_path=VARCHAR(1000) 参与联合索引会超限,
|
||||||
|
-- 这里改为前缀索引以保证初始化可执行;如需“完全避免 VARCHAR 参与索引”,建议改用 hash 生成列方案。
|
||||||
|
INDEX idx_dm_dataset_logical_path (dataset_id, logical_path(700), version),
|
||||||
INDEX idx_dm_file_type (file_type),
|
INDEX idx_dm_file_type (file_type),
|
||||||
INDEX idx_dm_file_status (status),
|
INDEX idx_dm_file_status (status),
|
||||||
INDEX idx_dm_upload_time (upload_time)
|
INDEX idx_dm_upload_time (upload_time)
|
||||||
|
|||||||
Reference in New Issue
Block a user