规范化这个表是否更快?

ero*_*ppa 0 sql database optimization rdbms

我有两个表,像这样:

表人物:
VARCHAR名称
INTEGER年龄

表消息
VARCHAR消息
VARCHAR名称

Message表中有数百个插入和删除,其中包含以下查询:

insert into Message VALUES ('Hello there', 'John');
delete from Message where name = 'John';
Run Code Online (Sandbox Code Playgroud)

我的问题是,在People中添加ID字段并在Message中引用User作为id是否值得?以下查询会更快吗?

FIRST - select id from User where name = 'John'
THEN - delete from Message where id = $id
Run Code Online (Sandbox Code Playgroud)

我认为首先通过搜索id来插入和删除比通过字符搜索更快.但要快多少?速度是否会因为需要额外查询到User表来查找id而抵消性能损失?

tek*_*ues 5

如你所说,额外的查询将使它慢得多(当然,依赖于名称的长度,数据库类型等)

但是当用户更改其名称,何时要删除用户等时会发生什么?那种设计会给你带来很多痛苦.无论这个微小的性能问题如何,最好进行标准化,