gpt4 book ai didi

sql - 该数据模型的性能优势?

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:17 25 4
gpt4 key购买 nike

我有一个具有以下特征的 MySQL(innodb) 表 'items'

  1. 行数很大,而且还在不断增加。
  2. 大量的各种数据类型的列,包括“文本”;
  3. 存在主键“item_id”。

还有如下额外要求:

  1. 需要根据状态查询元素
  2. 需要更新状态

以上两种操作经常发生。

鉴于上述情况,我有两个问题

  1. 创建一个包含两列的单独表,即 item_idstatus 并将 item_id 作为主键可以提高性能吗?
  2. 如果上述情况属实,我将如何解决基于状态查询 item_id 的问题?

我在处理数据库方面没有经验。我希望你能忍受我:)

最佳答案

这称为垂直分割。当一个数据实体有多个访问模式时,它经常被使用,这些访问模式以不同的频率访问实体属性(表列)的不同子集。如果一个函数每秒只需要访问一个或两个列 100 次,而另一个应用程序函数需要访问所有其他列,但一天只需要一次或两次,那么这种方法是有必要的,并将获得实质性的性能改进。

基本上,正如您所建议的,您将表“拆分”为两个表,两个表都具有相同的键,具有一对一的 FK/PK->PK 关系。在一个表中,您只放置访问频率较高的那几列,而将其余列放在访问频率较低的另一个表中。然后,您可以根据每个表的实际访问模式,更恰本地分别为每个表应用索引。

关于sql - 该数据模型的性能优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1500187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com