mysql - mysql 中的 varchar 和复合主键?

标签 mysql performance primary-key varchar

我正在开发一个日志数据库,在这种情况下被记录的组件的ID不是由数据库本身决定的,而是由发送报告的系统决定的。系统id是一个唯一的varchar,组件的id由系统(在某个较远的位置)确定,因此当组件的主键为system_id + component_id时,可以保证唯一性。

我想知道这种方法是否有效。我可以使用自动递增的整数作为 id,但这意味着我必须在插入之前执行选择操作,以便我可以获得此生成的 id,而不是使用系统提供的已知字符串 id。

数据库规模将很小,不超过几十个系统,每个系统有几十个组件,可能还有数千个组件更新(另一个表)。旧的更新将定期转储到文件中并从数据库中删除,因此它永远不会变得“大”。

有什么推荐吗?

最佳答案

我倾向于使用自动递增整数作为主键,并将索引放在 system_id 和 component_id 上。您在插入之前的选择将非常便宜且快速。

关于mysql - mysql 中的 varchar 和复合主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10115433/

相关文章:

performance - Flash 文本引擎的显示速度是否比典型的文本字段快?

asp.net-mvc - 在生产代码中保留 MiniProfiler 的 ProfiledDbConnection 是否安全?

cassandra - cassandra中的主键是唯一的吗?

python - 异步递增并返回 Django 1.3 对象的字段并确保唯一性

MySQLi 使用 CURDATE 检索 future 12 个月内事件的结果

c - Apache 模块 : C module vs mod_wsgi python module - Performance

sql - Mysql:如何创建具有多个主键的表?

mysql - 如何在phpMyAdmin中使用自动增量

php - CI Active record,从多个表中选择记录

php - 如何在 angular.js 中组织 sql 查询返回的列表