gpt4 book ai didi

iphone - 我有一张需要优化的庞大 table 。我想我需要使用索引,但我希望获得有关它们的更多信息

转载 作者:行者123 更新时间:2023-12-03 18:21:19 25 4
gpt4 key购买 nike

因此,我有一个很大的表,我经常查询(仅选择)。该表大约有12,000行。自iOS问世以来,运行这些选择查询所需的时间增加了4-5倍。

有人告诉我需要在表中添加索引。我正在使用的查询如下所示:

SELECT * FROM book_content WHERE book_id = ? AND chapter = ? ORDER BY verse ASC


如何为该表创建索引?这是我只运行一次的命令吗?索引到底要做什么?我在学校还没有学到这些东西,所以在这一点上,它们对我来说似乎还是一种魔力,所以我希望得到一点指导。

谢谢!

最佳答案

您需要有关book_id和Chapter的索引。如果没有索引,服务器将执行table scan并将本质上将整个表加载到内存中以进行搜索。在CREATE INDEX命令上快速搜索所使用的RDBMS。一次创建索引,每次执行INSERTDELETEUPDATE时,服务器都会自动更新索引。索引可以是UNIQUE,并且可以在多个字段上(在您的情况下为book_id和Chapter)。如果将其设置为UNIQUE,则数据库将不允许您使用相同的键(在本例中为book_id和Chapter)插入第二行。在大多数服务器上,在两个字段上具有一个索引不同于在单个字段上具有两个单独的索引。

一个Mysql的例子是:

CREATE INDEX id_chapter_idx ON book_content (book_id,chapter);


如果每个book_id,章节组合只需要一条记录,请使用以下命令:

CREATE UNIQUE INDEX id_chapter_idx ON book_content (book_id,chapter);


PRIMARY INDEXUNIQUENOT NULL的特殊索引。每个表只能有一个主索引。实际上,每个表应具有一个主索引以确保表的完整性,尤其是在连接期间。

关于iphone - 我有一张需要优化的庞大 table 。我想我需要使用索引,但我希望获得有关它们的更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8528744/

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