Query rewriting is a typically automatic transformation that takes a set of database tables, views, and/or queries, usually indices, often gathered data and query statistics, and other metadata, and yields a set of different queries, which produce the same results but execute with better performance (for example, faster, or with lower memory use).[1] Query rewriting can be based on relational algebra or an extension thereof (e.g. multiset relational algebra with sorting, aggregation and three-valued predicates i.e. NULLs as in the case of SQL). The equivalence rules of relational algebra are exploited, in other words, different query structures and orderings can be mathematically proven to yield the same result. For example, filtering on fields A and B, or cross joining R and S can be done in any order, but there can be a performance difference. Multiple operations may be combined, and operation orders may be altered.
The result of query rewriting may not be at the same abstraction level or application programming interface (API) as the original set of queries (though often is). For example, the input queries may be in relational algebra or SQL, and the rewritten queries may be closer to the physical representation of the data, e.g. array operations. Query rewriting can also involve materialization of views and other subqueries; operations that may or may not be available to the API user. The query rewriting transformation can be aided by creating indices from which the optimizer can choose (some database systems create their own indexes if deemed useful), mandating the use of specific indices, creating materialized and/or denormalized views, or helping a database system gather statistics on the data and query use, as the optimality depends on patterns in data and typical query usage.
Query rewriting may be rule based[2] or optimizer based. Some sources discuss query rewriting as a distinct step prior to optimization, operating at the level of the user accessible algebra API (e.g. SQL).[citation needed]
There are other, largely unrelated concepts also named similarly, for example, query rewriting by search engines.[3]
^Vassilakopoulos, Michael; Tzouramanis, Theodoros; Terenziani, Paolo; Patel, Chintan; Weng, Chunhua; Romero, Rafael; Mazón, Jose-Norberto; Trujillo, Juan; Serrano, Manuel; Piattini, Mario; Buragohain, Chiranjeeb; Suri, Subhash; Zhu, Xingquan; Risch, Tore; Bu, Yingyi; Chi-Wing Wong, Raymond; Fu, Ada Wai-Chee; Chirkova, Rada; Gupta, Amarnath; Vechtomova, Olga; He, Ben; Risch, Tore; Tata, Sandeep; Patel, Jignesh M.; Lacroix, Zoé; Bouganim, Luc; Pitoura, Evaggelia; Neumann, Thomas; Tan, Kian-Lee; et al. (2009). "Query Rewriting". Encyclopedia of Database Systems. pp. 2308–2309. doi:10.1007/978-0-387-39940-9_863. ISBN 978-0-387-35544-3.
^Pirahesh, Hamid; Hellerstein, Joseph M. "Extensible/Rule Based Query Rewrite Optimization in Starburst". Retrieved 2020-04-06.
^Williams, Hugh E. (2012-03-20). "Query Rewriting in Search Engines". Hugh E. Williams. Retrieved 2020-04-06.
Queryrewriting is a typically automatic transformation that takes a set of database tables, views, and/or queries, usually indices, often gathered data...
learning models. Queryrewriting is the process of automatically reformulating a search query to more accurately capture its intent. Query expansion adds...
leading queryrewriting algorithm for LAV data integration systems. In general, the complexity of queryrewriting is NP-complete. If the space of rewrites is...
URL rewriting, either directly or through extension modules. Apache HTTP Server has URL rewriting provided by the mod_rewrite module. URL Rewrite is available...
a materialized view is a database object that contains the results of a query. For example, it may be a local copy of data located remotely, or may be...
queries and views; therefore, all rewriting is required to yield unique results (up to isomorphism), and this is achieved by applying any rewriting rule...
Data dictionary JDBC XQJ ODBC Query language Query optimizer Queryrewriting system Query plan Functions Administration Query optimization Replication Sharding...
Data dictionary JDBC XQJ ODBC Query language Query optimizer Queryrewriting system Query plan Functions Administration Query optimization Replication Sharding...
of the subquery into the FROM clause of the outer query and rewriting expressions in the outer query that refer to the result set of the subquery. ......
GraphQL is an open-source data query and manipulation language for APIs and a query runtime engine. GraphQL enables declarative data fetching where a client...
PageRank I. Antonellis, H. Garcia-Molina and C.-C. Chang. Simrank++: QueryRewriting through Link Analysis of the Click Graph. In VLDB '08: Proceedings...
according to a few straightforward rewriting rules, resulting in ordinary Prolog clauses. Most notably, the rewriting equips the predicate with two additional...
mathematical properties, it becomes possible to rewritequeries in provably correct ways, which is the basis of query optimization. There is no loss of expressiveness...
In database theory, the query evaluation problem is the problem of determining the answers to a query on a database. Research in database theory aims...
Electronics Engineers (IEEE) Database Query Optimization with Soft Constraints (2008) Gryz, J. (1999). Queryrewriting using views in the presence of functional...
Turing machines Decision tree model Functional models include: Abstract rewriting systems Combinatory logic General recursive functions Lambda calculus...
Sequeda, Juan F.; Arenas, Marcelo; Miranker, Daniel P. (2014). "OBDA: QueryRewriting or Materialization? In Practice, Both!". The Semantic Web – ISWC 2014...
systems, including the use of B-trees, primary-copy replication, the queryrewrite approach to views and integrity constraints, and the idea of rules/triggers...
declarative database-query language for data manipulation in this data model. It formed the inspiration for the database-query languages QUEL and SQL...
according to a few straightforward rewriting rules, resulting in ordinary Prolog clauses. Most notably, the rewriting equips the predicate with two additional...
can be configured in most server configuration files, or through URL rewriting; in the second case, a 410 Gone should be returned. Because these two...
two writers collaborating on a specific script, rather than one writer rewriting another's work. In screenplays, two authors joined with & collaborated...
jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animations, and Ajax. It...
own results. Metasearch engines take input from a user and immediately query search engines for results. Sufficient data is gathered, ranked, and presented...