【发布时间】:2021-03-27 13:31:28
【问题描述】:
例如,如果我想在会话期间频繁更新用户的分数, 有没有比 - UPDATE score FROM [databaseName] WHERE name = [username]
更高效的方法当先前找到值的位置时,我觉得我不应该持续搜索整个数据库。
提前致谢
【问题讨论】:
-
sql中没有值的位置这样的东西。
标签: sql database sqlite unity3d
例如,如果我想在会话期间频繁更新用户的分数, 有没有比 - UPDATE score FROM [databaseName] WHERE name = [username]
更高效的方法当先前找到值的位置时,我觉得我不应该持续搜索整个数据库。
提前致谢
【问题讨论】:
标签: sql database sqlite unity3d
如果您在name 上有索引,您将不会搜索整个数据库:
create index idx_<table>_name on <table>(name);
其中<table> 是您所指的表的名称,而不是数据库的名称。
顺便说一下,如果您想更新表格,您可以使用update,而不是select。但是update仍然可以使用索引。
【讨论】:
您可以在此处使用属性,您可以在需要时仅搜索和更新数据库。
private int score;
public int Score
{
get
{
score = searchDatabase();
return score;
}
set
{
UpdateDatabase(value);
score = value;
}
}
Debug.Log(Score);
【讨论】:
唯一想到的与您提到的值的位置相似的是具有您搜索的值的行的主键列的值。
所以,如果表中的主键是id,而你只有这个人的name,你可以查询一次得到该行的id:
SELECT id FROM tablename WHERE name = ?
然后在所有后续更新中使用 id:
UPDATE tablename SET score = ? WHERE id = ?
这是进行更新的最快方式。
【讨论】: