gpt4 book ai didi

mysql - 在大型 MySQL 表中查找记录的最佳方法是什么?

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

我最近一直在思考,但找不到任何信息,哪种方法最适合在大型数据库(尤其是 MySQL 数据库)中查找记录。

假设我有带表的数据库:

  • 主题:[ID主题,名称];
  • 图书:[图书ID、用户ID、主题ID、书名];

用户有一些 ID,我可以用它来获取他的所有书籍。但是,我的用户只想按给定主题的书名了解他的书。

所以我需要根据 2 个索引进行搜索 - ID 主题和 ID 用户。

表格主题可以有 <10 条记录,而另一方面,表格书籍可以有 >10 000 条记录。

我的想法是,获取我需要制作的用户请求的所有书籍的最快方法:

 SELECT books.title FROM books WHERE books.ID_topic = idTopic
AND books.ID_user = idUser ORDER BY topics.ID_topic

您怎么看,在这种情况下,这是获取数据的最佳和最有效的方式吗?

编辑

我在 SELECT 中犯了一个大错误,谢谢你指出。

回答您的问题:

  • 用户可以拥有大约 10 本书,其中 8 本书可以属于 ID 为 1 的类别,其余 2 本书属于最后一个类别。
  • 最好的意思是执行速度最快

最佳答案

你问的不是100%清楚,但这是我的猜测:

  1. 我会在 books 表上建议一个索引:ALTER TABLE books ADD INDEX (ID_user, ID_topic)

  2. 像这样查询表:SELECT books.title FROM books WHERE books.ID_topic = idTopic AND books.ID_user = idUser。为此,您当然需要知道用户 ID 和主题 ID。如果您想按主题名称查询,则需要 JOIN

关于mysql - 在大型 MySQL 表中查找记录的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22766468/

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