mysql - MySQL 中的多字段索引是一个不错的选择吗?

标签 mysql sql database performance indexing

我有一个庞大的数据集。结构看起来像这样:

K_Field1, K_Field2, K_Field3, K_Field4, D_Field5, D_Field6, D_Field7, D_field8

问题是只有前 4 个字段 (K_Field1,K_Field2,K_Field3,K_Field4) 一起唯一标识一行。我创建了一个表,使用这些字段作为它的字段。

假设我在使用该结构的表中有 100 万行。如果我导入一条新记录,我必须确定它是否已经在数据库中。如果是,那么我必须更新它,如果不是,那么我需要插入一个新行。

为此,我需要在前 4 列上放置一个多字段索引,这恐怕不是最佳解决方案。是否有更好的数据库结构来存储和搜索该数据,或者我必须忍受四字段索引?

我正在使用 MySQL

最佳答案

在前 4 列上创建索引没有错,事实上你应该:

create unique index mytable_key on mytable(K_Field1,K_Field2,K_Field3,K_Field4);

因为这就是您的实际情况。

这也是“正确”的解决方案。

关于mysql - MySQL 中的多字段索引是一个不错的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6957365/

相关文章:

php - PHP/MySQL Web 开发人员应该了解服务器的哪些方面?

MYSQL 数据库查询与连接和计数

sql - 如何在 SQL 查询中获取 Paperclip 照片 url - Rails 3.1,Paperclip

c# - 如何防止重复插入我出勤日期的数据

java - 使用 SQL REGEXP 查找手机号码

mysql - 这可以在MYSQL中完成吗

mysql - 无法构建 SQL 架构 - 对 ')' 附近语法的模糊错误引用

php - MySQLi 查询中的 LIMIT 问题

sql - 将ntext转换为nvcharmax(max)-解决大小限制

递归调用Android sqlite getdatabase