首先,我的游戏是在Unity3D中使用sqlite数据库进行的。
其次,我的数据库用于存储数千个随机星系及其伴随数据(行星,恒星,位置等)
我希望玩家能够做的是输入一个系统"地址" (例如,如果DB中有5个星系;
Sys001
Sys0012
Sys0013
Sys004
Sys050
并且用户搜索001
,然后搜索结果将返回;
Sys001, Sys0012, Sys0013
忽略Sys004和Sys050。
这将立即/接近即时(极快)发生,因此如果用户随后添加另一个字符(IE搜索0013
),则结果将立即实时更新。
我的问题是......要实现这一点,哪个更好用?我应该坚持只使用我的数据库(IE使用SQL函数获取此数据),还是更快/更好/更容易/更理想将所有数据库数据导入列表,然后搜索列表(即List [i]。 nameVariable.Contains(" 001")etc)
答案 0 :(得分:1)
如果它被大量访问并经常使用,那么是的,你可以将它加载到集合的内存中并使用它。如果没有,请在地址上创建索引并在列上搜索。同样,如果经常访问数据库,则在游戏开始时打开连接,重用该连接并在结束时关闭。如果没有,请在需要访问它的速率实例中打开并关闭后使用 - 这只会帮助释放资源。