gpt4 book ai didi

mysql - 在一个表上添加多个索引对插入有害吗?

转载 作者:可可西里 更新时间:2023-11-01 08:10:10 26 4
gpt4 key购买 nike

我在一张表上有三个语句。两个 SELECT 查询和一个 INSERT 查询。

// first
SELECT * FROM mytable WHERE id_user = :id AND seen IS NULL

// second
SELECT * FROM mytable WHERE id_user = :id AND timestamp > :tm

// third
INSERT INTO mytable (id, id_user, timestamp) VALUE (NULL, :id, :time)

如您所见,根据前两个 SELECT 查询,我需要这两个索引:

ADD KEY id_user1 (id_user, seen);
ADD KEY id_user2 (id_user, timestamp);

一切顺利。但我听说索引对 INSERTUPDATE 语句有害。我的意思是索引会使 INSERTUPDATE 变慢。所以我想知道,我是否应该在 id_user 上添加一个索引,像这样:

ADD KEY id_user (id_user);

实际上,我正在尝试快速选择插入。那么根据这三种说法,我应该添加什么样的索引呢?

最佳答案

好吧,这是一个非常笼统的问题,它取决于数据。索引可能有害,也可能有所帮助,但您不能总是在尝试运行它之前对其进行预测。可以看看加索引前后的执行计划,更好的决定。

一般来说,索引会损害 INSERT 语句的性能,它们通常有助于 UPDATE 语句而不损害它们(同样,取决于索引和更新语句)。

要决定你需要添加哪些索引,你需要回顾一下你每天对这个表到底做了什么,如果它主要更新,那么你应该勇敢地在这个更新的列上添加索引。

我们无法提供适合您的答案,除非您提出具体问题,包括表格设计和所需任务,因此如果您有问题,请更新您的问题并发布。

关于mysql - 在一个表上添加多个索引对插入有害吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37509821/

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