Alf*_*red 8 memory performance autocomplete
首先,我知道:
过早优化是万恶之源
但我认为错误的自动填充功能真的会炸毁您的网站.
我想知道是否有任何库可以有效地自动完成(服务器端),这可以适合RAM(为了获得最佳性能).所以没有browseride javascript自动完成(yui/jquery/dojo).我认为在stackoverflow上有足够的话题.但我无法在stackoverflow上找到一个关于这个的好线程(可能看起来不够好).
例如自动完成名称:
names:[alfred, miathe, .., ..]
Run Code Online (Sandbox Code Playgroud)
我能想到的是:
SELECT name FROM users WHERE name LIKE al%.
http://localhost:8983/solr/terms?terms.fl=name&terms.sort=index&terms.prefix=al&wt=json&omitHeader=true.
我想听到的是网站使用的实现以及它可以处理负载的数量,最好:
非常感谢,
阿尔弗雷德
Jon*_*ley 10
不幸的是,此问题的解决方案将在很大程度上取决于您希望查询的数据.
LIKE查询不会给您的数据库带来太大压力,只要您花时间使用"EXPLAIN"或分析器来向您展示查询优化器计划如何执行查询.
一些基本要记住:
索引:确保您已设置索引.(是的,在许多情况下,LIKE确实使用索引.在myitforum上有一篇关于该主题的优秀文章.SQL性能 - 索引和LIKE子句).
联接:确保您的JOIN已就位并由查询计划程序进行优化.SQL Server Profiler可以为此提供帮助.注意完整的索引或全表扫描
自动完成查询是一种特殊情况,因为它们通常用作不断减少的子集.
'name' LIKE 'a%' (可能会返回10000条记录)'name' LIKE 'al%'(可能会返回500条记录)'name' LIKE 'ala%' (可能会返回75条记录)'name' LIKE 'alan%' (可能会返回20条记录)如果返回查询1的整个结果集,则无需再次为以下结果集命中数据库,因为它们是原始查询的子集.
根据您的数据,这可能会为优化提供更多机会.
我不会遵守您的要求,显然规模的数量将取决于硬件,数据库的大小,应用程序的架构以及其他几个项目.你必须自己测试一下.
但我会告诉你我成功使用的方法:
SELECT name FROM users WHERE name LIKE al%.但用于TOP 100限制结果的数量.希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
5739 次 |
| 最近记录: |