我有一个表,有两个用途。目的之一是通过运行 PHP cron 作业每 5 秒完成一次计算。为此,我需要一个由大约 5 个字段组合而成的主键。有了这个主键,cron 作业就可以非常有效且快速地运行。该表还有第二个用途,即在用户登录后检索数据以显示在网页上。为此,需要完全不同的主键。我用于 cron 的那个使它变慢。我很想创建两个具有相同字段和数据但主键不同的表。我知道这会增加很多开销,但网站会非常快速且响应迅速。这是值得推荐的吗?
最佳答案
您可以根据需要的任意字段组合创建索引。
一般来说,我更喜欢表上的自动递增整数主键。非常有用。
您可以拥有这样一个索引,然后在其他列上再构建两个索引
create index table_col1_col2_col3_col4_col5 on table(col1, col2, col3, col4, col5);
第一个索引。如果您愿意,可以将其设置为唯一
索引,然后数据库将强制这五列的行之间的唯一性。然后你可以创建另一个索引以另一种方式浏览表格:
create index table_col6_col7 on table(col6, col7);
这可用于检索。
在插入
/更新
/删除
操作上维护索引会产生一些开销。您需要在您的环境中进行测试,看看这是否是一个问题(通常不是)。
关于mySQL表,主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21272040/