【问题标题】:How does a database loop through rows? [duplicate]数据库如何循环遍历行? [复制]
【发布时间】:2015-06-20 16:20:13
【问题描述】:

我将首先解释我的场景:我正在创建一个 MMORPG,并且我希望更好地了解在库存中存储物品的最有效方式。根据我的研究,我发现大多数游戏都有一个 INVENTORY 表,其中的行包含 ITEM_ID、ITEM_QUANTITY、USER_ID 和 SLOT_ID。

我认为这个表可能有数百万行。

所以如果我使用一个简单的语句,例如:

SELECT ITEM_ID
FROM INVENTORY
WHERE USER_ID = 25;

那么数据库如何真正“找到”要返回的结果呢?它是否必须“循环”每条记录直到找到匹配项?我担心的是,如果这确实是这样做的方式,那么某些 SELECT FROM WHERE 语句不会永远花费吗?

谢谢, 伊恩

【问题讨论】:

  • 索引,伊恩,索引。
  • 了解indexes
  • 另外请记住,您不必使用关系数据库。对于非常大的数据,您最终会切换到 hbase 之类的东西,它们处理数据检索的方式完全不同。

标签: mysql database select where


【解决方案1】:

您需要遵循一些建表的基本原则。

  1. 有一个 id 列
  2. 保持表格规范化(在线查看表格规范化。你会发现很多东西)。
  3. 在列上添加索引。例如:在库存表中,如果您经常在 where 条件下使用它,则可以在 user_id 列上建立索引。 user_id 上的索引按 user_id 对表数据进行分组,从而加快查询执行速度。

【讨论】:

  • 不要对非代码文本使用代码格式。
猜你喜欢
  • 1970-01-01
  • 2019-08-07
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多