C# 随机存取存储器中的索引数据库

C# 随机存取存储器中的索引数据库,c#,java,.net,sql,database,C#,Java,.net,Sql,Database,我目前正在为一个工作搜索系统编写一个小型测试web应用程序。 我有一张桌子空缺(主要的桌子要谈)。 我需要对与用户查询匹配的空缺(在输入控件下面的建议列表中)进行快速AJAX更新。不同的数据库管理系统提供了强大的编程扩展,如Microsoft SQL Server中的自由文本搜索。。但我认为扫描一个物理文件需要很多时间。我的想法是将整个表的空位转移到RAM中,所以在我看来,这是有意义的,因为在这种情况下,数据检索需要更少的时间。 因此,如果客户端在文本框中键入类似“pro”的内容,建议列表将显示


我目前正在为一个工作搜索系统编写一个小型测试web应用程序。 我有一张桌子空缺(主要的桌子要谈)。 我需要对与用户查询匹配的空缺(在输入控件下面的建议列表中)进行快速AJAX更新。不同的数据库管理系统提供了强大的编程扩展,如Microsoft SQL Server中的自由文本搜索。。但我认为扫描一个物理文件需要很多时间。我的想法是将整个表的空位转移到RAM中,所以在我看来,这是有意义的,因为在这种情况下,数据检索需要更少的时间。 因此,如果客户端在文本框中键入类似“pro”的内容,建议列表将显示建议: -product manager -professional designer -programmer -programmer C# -programmer Java -property administrator -provision expert -产品经理 -专业设计师 -编程器 -程序员C# -程序员Java -物业管理人 -供应专家 当用户键入另一个字母“g”时,文本框的值将变宽为“prog” 此时列表将刷新: -programmer -programmer C# -programmer Java -编程器 -程序员C# -程序员Java 为了实现这一点,我计划创建一个在节点中保存值的树索引,其中空缺前缀将扮演索引键的角色,节点值是空缺名称。索引只使用数据表中的数据构建和填充一次。看看我下面的意思:
"pro" -> { "product manager", "professional designer", "programmer", "programmer C#", "programmer Java" "property administrator", "provision expert" } “专业”->{ “产品经理”, “专业设计师”, “程序员”, “程序员C#”, “Java程序员” “物业管理人”, “供应专家” } 因此,索引生成器必须分析字符串列表并找到最少的空缺名称前缀。 然后,当生成器找到一个前缀后面有字母的字符串时,它会创建一个子树节点(“prog”)(该节点中的数据值计数会随着不断过滤而减少),并将其自身添加到父节点(“pro”)
“prog”->{ “程序员”, “程序员C#”, “程序员Java”} } 你能告诉我哪些类型的树索引自然适合解决这个问题吗? 到寻找时间,他们中最好的是什么?
谢谢

此问题已在多年前解决,您正在重新创建:


因为你想要的是一棵帕特里夏树或一棵根树。就在RAM中存储所有数据而言,这是一个坏主意,因为还有其他应用程序使用RAM而不仅仅是索引。目前,我正在剥离某人的自定义数据库,他们认为这是一个很好的实现方法,并用真正的数据库解决方案取代它。

大多数关系数据库都将索引存储在B-树中,这意味着在索引列上搜索
'prog%'
会相当快。数据库还将智能地将表和索引缓存到内存中。您可能正在改造数据库在幕后已经做的事情。您确定执行哑ole查询太慢了吗?对于您通过ajax提交的任何内容,大多数数据库都可能不会太慢。如果应用程序分布在两台服务器之间:安装在服务器1上的DBMS,服务器2上运行的应用程序逻辑,服务器1没有足够的RAM来保存我的表索引,该怎么办。我知道这不太可能发生,但只是举个例子来说明。我只是需要一些练习来感受什么是索引数据。谢谢,哥们!你帮了我的忙。。现在谷歌搜索根树 "prog" -> { "programmer", "programmer C#", "programmer Java"} }