Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何最好地开发sql以支持web应用程序中的搜索功能?_Sql - Fatal编程技术网

如何最好地开发sql以支持web应用程序中的搜索功能?

如何最好地开发sql以支持web应用程序中的搜索功能?,sql,Sql,与许多web应用程序(业务)一样,客户需要一个可以在每个数据字段中搜索的表单。表单可以有15-20个不同的字段,用户可以在其中选择/输入/输入要在sql(存储过程)中使用的内容 这些是用户的典型请求,大多数应用程序都必须处理这些请求 目前真正的问题是如何为用户提供这种类型的界面/选项,以及如何建立快速的SQL访问。上述字段可以跨越15个不同的表,并且相应的sql语句(通常抽象为存储过程)将具有尽可能多的联接。数据必须始终返回到网格类型视图以及某种报告格式(通常为excel) 我/我们发现这些sq

与许多web应用程序(业务)一样,客户需要一个可以在每个数据字段中搜索的表单。表单可以有15-20个不同的字段,用户可以在其中选择/输入/输入要在sql(存储过程)中使用的内容

这些是用户的典型请求,大多数应用程序都必须处理这些请求

目前真正的问题是如何为用户提供这种类型的界面/选项,以及如何建立快速的SQL访问。上述字段可以跨越15个不同的表,并且相应的sql语句(通常抽象为存储过程)将具有尽可能多的联接。数据必须始终返回到网格类型视图以及某种报告格式(通常为excel)

我/我们发现这些sql语句很慢,很难优化,因为用户可以输入1或15个不同的搜索条件

如何做到这一点?寻找关于现有大型应用程序如何处理这些需求的建议/想法。
这真的归结为试图优化存储过程中的sql吗


thx

不,您需要使用真正的搜索引擎技术,使全文搜索具有良好的性能。没有SQL谓词(例如,
像“%pattern%”
)是可伸缩的

您无法确定使用的是哪个品牌的RDBMS,但每个主要品牌的RDBMS都有自己的全文搜索功能:

  • Microsoft SQL Server:
  • 甲骨文:(原上下文)
  • MySQL:索引(仅限MyISAM)
  • PostgreSQL:数据类型和索引类型
  • SQLite:(FTS)
  • IBM DB2:
还有第三方的文本索引解决方案,例如:

  • 阿帕奇/

此外,应用程序需要包括分页和按任何字段排序。听起来您需要检查特定数据库系统上的全文搜索