首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mariadb 120字符主键

问mariadb 120字符主键
EN

Stack Overflow用户
提问于 2017-11-28 02:49:45
回答 1查看 315关注 0票数 0

我有一个启用utf8mb4的mariadb (版本10.2.10)表。有一个varchar(120)列jobID,它唯一地标识行。目前,我使用的是长度为60个字符的jobID (可选择在将来增加)。所以,我把它变成了主键。

现在,我有60000张唱片。因此,当我使用detail given here检查数据文件+索引文件的大小时,它作为数据文件大小的出现几乎等于索引文件。因此,由于我声明的主键,当数据文件上升时,索引文件正在上升1:1。

因此,我开始考虑添加一个整数自动增量主键(如讨论的here ),并将jobID列作为唯一键。但是索引文件随着数据文件的增加而增加1:1的问题,以及随着表大小的增加,新插入到表的性能下降(表在未来几天内将有2000万条记录),使我感到困惑。正确的方法应该是什么?提前谢谢。

我现在创造的桌子。

代码语言:javascript
复制
CREATE TABLE jobsTable (
 `jobId` varchar(100) NOT NULL,
 `status` varchar(15) NOT NULL,
 `addedTime` varchar(13) NOT NULL,
 PRIMARY KEY(`jobId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-29 20:10:33

根据定义,PRIMARY KEY (在MySQL中)是UNIQUE。听起来你有这样的感觉

代码语言:javascript
复制
CREATE TABLE ...
    ...
    PRIMARY KEY(jobID),
    UNIQUE(jobID) -- redundant, and a waste of space; DROP it.
...

在InnoDB中,数据和PK共存(“集群”)。但是每一个“次要”键都占用了更多的空间。

如果这不能解释的话那..。不看到SHOW CREATE TABLE就不能回答。jobID样本是什么样子的呢?

根据辅助键的数量以及它们是什么样的,我可能建议使用或反对使用AUTO_INCREMENT PK。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47523177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档