CN112395303A - Query execution method and device, electronic equipment and computer readable medium - Google Patents

Query execution method and device, electronic equipment and computer readable medium Download PDF

Info

Publication number
CN112395303A
CN112395303A CN201910754045.0A CN201910754045A CN112395303A CN 112395303 A CN112395303 A CN 112395303A CN 201910754045 A CN201910754045 A CN 201910754045A CN 112395303 A CN112395303 A CN 112395303A
Authority
CN
China
Prior art keywords
query
sub
execution
child node
distributed database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910754045.0A
Other languages
Chinese (zh)
Inventor
刘继龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910754045.0A priority Critical patent/CN112395303A/en
Publication of CN112395303A publication Critical patent/CN112395303A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The embodiment of the application provides a query execution method and device, electronic equipment and a computer readable medium, and relates to the field of databases. Wherein the method comprises the following steps: converting the sub-query in the received SQL request to obtain a relational algebra expression corresponding to the sub-query; determining a part of the relational algebra expression which can be pushed down to a child node in a distributed database for execution; and converting the part of the relational algebra expression which can be pushed down to the child node in the distributed database for execution so as to obtain SQL instructions for instructing the child node to execute the related operation of the child query. According to the method and the device, the sub-query is pushed down to the sub-node in the distributed database to be executed, and the sub-query is effectively executed by combining the sub-node of the distributed database, so that the whole computing capacity of the distributed database can be completely utilized, and the computing pressure of the execution server in the distributed database system is effectively relieved.

Description

Query execution method and device, electronic equipment and computer readable medium
Technical Field
The embodiment of the application relates to the field of databases, in particular to a query execution method, a query execution device, electronic equipment and a computer readable medium.
Background
A subquery is a program module that is nested beneath a query in a common computer language. When a query is a condition of another query, it is referred to as a sub-query. As an easily understandable and conveniently constructed Structured Query Language (SQL) structure syntax, the proportion of sub-queries appearing in SQL statements processed by a distributed database is in a continuously rising state at present.
In the distributed relational database, the sub-query is used as a nonstandard relational algebra operator, and if the sub-query is effectively processed by combining a distributed data structure, the whole computing capacity of the distributed relational database can be completely utilized, so that the computing pressure of an execution server in the distributed relational database system is effectively relieved. However, effectively combining distributed data structures to process sub-queries has been a difficult point in distributed relational database development. In particular, in a distributed relational database, the computational process of sub-queries is difficult to push down to sub-node execution in the distributed relational database.
In a distributed KV (Key-Value) type database, a distributed database is constructed based on a KV structure, and since the database cannot provide a good relational API (Application Programming Interface) semantic, the computation process of a sub-query is also difficult to be pushed down to a child node in the distributed KV type database for execution. As such, the overall computing power of the distributed KV-type database cannot be fully utilized to effectively alleviate the computing pressure of the execution servers in the distributed relational database system.
Therefore, how to push the sub-query down to the child node execution in the distributed database becomes a technical problem to be solved at present.
Disclosure of Invention
The application aims to provide a query execution method, a query execution device, an electronic device and a computer readable medium, which are used for solving the problem of how to push down a sub query to a child node in a distributed database for execution in the prior art.
According to a first aspect of embodiments of the present application, a method for executing a query is provided. The method comprises the following steps: converting the sub-query in the received SQL request to obtain a relational algebra expression corresponding to the sub-query; determining a part of the relational algebra expression which can be pushed down to a child node in a distributed database for execution; and converting the part of the relational algebra expression which can be pushed down to the child node in the distributed database for execution so as to obtain SQL instructions for instructing the child node to execute the related operation of the child query.
According to a second aspect of embodiments of the present application, there is provided an apparatus for executing a query. The device comprises: the first conversion module is used for converting the sub-query in the received SQL request so as to obtain a relational algebra expression corresponding to the sub-query; the first determination module is used for determining a part of the relational algebra expression which can be pushed down to a child node in a distributed database to execute; and the second conversion module is used for converting the part of the relational algebra expression which can be pushed down to the child node in the distributed database for execution so as to obtain the SQL instruction used for indicating the child node to execute the related operation of the child query.
According to a third aspect of embodiments of the present application, there is provided an electronic apparatus, including: one or more processors; a computer readable medium configured to store one or more programs which, when executed by the one or more processors, cause the one or more processors to implement a method of executing a query as described in the first aspect of the embodiments above.
According to a fourth aspect of embodiments of the present application, there is provided a computer-readable medium, on which a computer program is stored, which when executed by a processor, implements the method of executing a query as described in the first aspect of the embodiments above.
According to the technical scheme provided by the embodiment of the application, the sub-queries in the received SQL request are converted to obtain the relational algebra expressions corresponding to the sub-queries, the parts, which can be pushed down to be executed by the sub-nodes in the distributed database, in the relational algebra expressions are determined, the parts, which can be pushed down to be executed by the sub-nodes in the distributed database, in the relational algebra expressions are converted to obtain the SQL instructions for indicating the sub-nodes to execute the related operations of the sub-queries, compared with the existing other modes, the sub-queries can be pushed down to be executed by the sub-nodes in the distributed database by determining the parts, which can be pushed down to be executed by the sub-nodes in the distributed database, in the relational algebra expressions, and the sub-queries can be effectively executed in combination with the sub-nodes in the distributed database, therefore, the overall computing capacity of the distributed database can be fully utilized to effectively relieve the computing pressure of the execution server in the distributed database system.
Drawings
Other features, objects and advantages of the present application will become more apparent upon reading of the following detailed description of non-limiting embodiments thereof, made with reference to the accompanying drawings in which:
FIG. 1 is a flowchart illustrating steps of a method for executing a query according to an embodiment of the present disclosure;
FIG. 2A is a flowchart illustrating a method for executing a query according to a second embodiment of the present application;
FIG. 2B is a diagram illustrating a query execution process according to the second embodiment of the present disclosure;
FIG. 3 is a schematic structural diagram of an apparatus for executing a query according to a third embodiment of the present application;
FIG. 4 is a schematic structural diagram of an execution apparatus for querying in the fourth embodiment of the present application;
FIG. 5 is a schematic structural diagram of an apparatus for executing a query according to a fifth embodiment of the present application;
fig. 6 is a schematic structural diagram of a distributed database system according to a sixth embodiment of the present application;
fig. 7 is a schematic structural diagram of an electronic device in a seventh embodiment of the present application;
fig. 8 is a hardware structure of an electronic device according to an eighth embodiment of the present application.
Detailed Description
The present application will be described in further detail with reference to the following drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the relevant invention and not restrictive of the invention. It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings.
It should be noted that the embodiments and features of the embodiments in the present application may be combined with each other without conflict. The present application will be described in detail below with reference to the embodiments with reference to the attached drawings.
Referring to fig. 1, a flowchart illustrating steps of a query execution method according to a first embodiment of the present application is shown.
Specifically, the query execution method of the present embodiment includes the following steps:
in step S101, a sub-query in the received SQL request is converted to obtain a relational algebra expression corresponding to the sub-query.
In an embodiment of the present application, the SQL request may be an SQL request sent by a user through a client to a sub-query parser in an execution server of the distributed database system. The client comprises a MySQL client or other application programs and the like. A subquery is a program module under a nested query in the common computer language SELECT-SQL language. When a query A is a condition of another query B, it is referred to as a sub-query, e.g., query A is a sub-query. Relational algebra expressions can be understood as expressions that are a finite complex of relational algebra operations. The operation result of such an expression is still a relation. Query and update operations on a database may be represented by relational algebra expressions. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In some optional embodiments, when a sub-query in a received SQL request is converted, the sub-query is converted based on the type of the sub-query to obtain a join operator between relationships in the relational algebra expression and a join condition of the join operator; and generating a relational algebra expression corresponding to the sub-query based on the connection operator and the connection condition. Therefore, the sub-queries can be semantically understood based on the relational algebra expressions corresponding to the sub-queries. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In a specific example, the relationship is understood in the field of databases as a data table. The join operator can be understood as a symbol in relational algebra that represents a join operation between relations. The Join operators may include Semijoin operators, Antisemijoin operators, Left Join with max1row operators, Inner Join with max1row operators, and the like. The types of the subqueries include IN class subqueries, EXISTS class subqueries, ANY class subqueries, NOT IN class subqueries, NOT EXISTS class subqueries, ALL class subqueries, scalar class subqueries, and the like. Specifically, the correspondence table for converting various types of sub-queries into join operators is as follows:
type of sub-query Join operator
IN/EXISTS/ANY Semijoin
NOT IN/NOT EXISTS/ALL Antisemijoin
Scalar subquery in project Left Join with max1row
Scalar subquery in filter Inner Join with max1row
The IN/EXISTS/ANY class sub-query may be converted to a Semijoin operator, with the half-join being used to return records IN the first table after one table finds a matching record IN the other table. The operands of the IN and ANY sub-queries are converted into connection conditions together with the associated terms, and the EXISTS sub-query is only converted into connection conditions. For example, the sub-query "select from t1as a name in (select id from t 2a name)" may be converted into "semi join (a.id t2.id and a.name t2. name)" where "id" is an operand, "name" is an association, and "(a.id t2.id and a.name t2. name)" is a connection condition.
The NOT IN/NOT EXISTS/ALL class sub-queries may be converted to Anti-semi-join operators, which are used to return unmatched data when a row returned from one table is NOT fully joined to a data row IN another table. The operands of the NOT IN type subquery and the associated items are converted into the connection conditions together, the NOT EXISTS subquery and the ALL type subquery are converted into the connection conditions together, and the operator is reversed, wherein the conversion relationship is shown IN an operator reversal table as follows:
Figure BDA0002168170690000051
for example, the sub-query "select x from t1as a name a.id > all" (select id from t2 where a.name ═ name) "may be converted into" anti emijoin (a.id < ═ t2.id and a.name ═ t2.name) ", and the operator is inverted from" > "to" < ═ name ".
If the type of the sub-query is a scalar type, obtaining the connection operator by using an inner connection operator or a left connection operator to cooperate with a semantic operator, and converting the association items of the sub-query of the scalar type into the connection condition, wherein the semantic operator is used for expressing error reporting semantics when the return result of the sub-query of the scalar type exceeds one row. Specifically, the Scalar class subquery comprises a Scalar subquery in project class subquery and a Scalar subquery in filter class subquery. When the type of the sub-query is a Scale sub-query in project class sub-query, the Left Join operator is used to cooperate with the semantic operator to obtain the Join operator, for example, "Left Join with max1 row". When the type of the sub-query is a Scalar sub-query in filter class sub-query, an Inner Join operator is used to cooperate with a semantic operator to obtain the Join operator, for example, "Inner Join with max1 row". Wherein "max 1 row" is a semantic operator. By the method, the sub-query is converted into the connection operator, and the related items are extracted as connection conditions and prepared for push-down judgment. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In step S102, a portion of the relational algebra expression that can be pushed down to child node execution in the distributed database is determined.
In the embodiment of the present application, the child node may be understood as a server loaded with MySQL database or any other database that can recognize or support the semantics of the sub-query of standard SQL. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In some optional embodiments, when determining a portion of the relational algebra expression that can be pushed down to child node execution in the distributed database, if it is determined that split data structures of relationships on both sides of a join operator in the relational algebra expression are consistent, converting the join condition of the join operator into a conjunction logical expression; circularly judging whether each sub-item in the conjunction logic expression is in an equivalence condition or not, and whether the operand of the equal sign of each sub-item is the column name of the relation or not; and if the union set of all the equivalence conditions in the conjunction logic expression covers the split column of the relationship, determining that the relational algebra expression is a part which can be pushed down to a child node in a distributed database for execution. Therefore, by combining the split data structures of the tables in the sub-query and decomposing the relationship among the tables in the sub-query, the part which can be pushed down to the execution of the sub-nodes in the distributed database can be judged. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In one specific example, the split data structure of the relationship may be understood as the number and attributes of split columns of a data table. And if the split data structures of the relations connecting the two sides of the operator in the relational algebra expression are judged to be inconsistent, or the union set of all equivalent conditions in the conjunction logic expression does not cover the split columns of the relations, judging that the relational algebra expression cannot be pushed down to the child nodes in the distributed database to be executed. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In a specific example, the sub-query "select from t1as a where a.id in (select id from t2 where a.name)" can be converted to "semijoin (a.id t2.id and a.name t2. name)", the split columns of the t1 table are id columns and name columns, the split columns of the t2 table are both id columns and name columns, and the attributes of the split columns of the two tables are the same, both representing identity and name, so the split data structures of the t1 table and the t2 table are the same. The "a.id ═ t2. id" and "a.name ═ t2. name" may be sub-terms in the resultant logical expression obtained by conversion, both of which are equal-valued conditions, and the equal-numbered operands of both of the sub-terms are column names of the relationship. Furthermore, the union of all equivalence conditions in the conjunctive logic expression covers the split columns of tables t1 and t2. The truth form p ^ q is called a 'conjunctive logic expression', and is read as 'p conjunctive q' or 'p and q', wherein p and q are conjunctive branches of p ^ q. Wherein the meaning of the combined word Λ is as follows: when all the conjunction branches of the conjunction logic expression are true, the conjunction logic expression is true; the conjunction logic expression is false as long as there is one conjunction branch that is false. It can thus be determined that the relational algebra expression "semijoin (a.id ═ t2.id and a.name ═ t2. name)" is executed for child nodes that can be pushed down into the distributed database. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In some optional embodiments, after determining the portion of the relational algebra expression that can be pushed down to child node execution in the distributed database, the method further comprises: determining an execution cost of a part of the relational algebra expression which can be pushed down to child node execution in a distributed database; and determining the part to be pushed down to the child node in the distributed database to execute in the relational algebra expression based on the execution cost. Therefore, the execution part of the sub-nodes in the relational algebra expression can be reasonably pushed down. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In a specific example, the execution Cost of the portion of the relational algebra expression that can be pushed down to the execution of the child node in the distributed database may be determined by a CBO (Cost-Based Optimization) optimizer in the execution server of the distributed database, and the portion of the relational algebra expression that is to be pushed down to the execution of the child node in the distributed database may be determined Based on the execution Cost. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In step S103, a portion of the relational algebra expression that can be pushed down to a child node in the distributed database for execution is converted to obtain an SQL instruction for instructing the child node to execute a related operation of the child query.
In some optional embodiments, when converting the part of the relational algebra expression that can be pushed down to the child node in the distributed database for execution, converting the execution plan of the part of the relational algebra expression that can be pushed down to the child node in the distributed database for execution to obtain an abstract syntax tree corresponding to the execution plan; traversing the abstract syntax tree to generate a hierarchical namespace and connectivity; and generating SQL instructions for indicating the child nodes to execute the related operations of the child queries layer by layer from bottom to top based on the layered name space and the connection relation. By this, by converting the part of the relational algebra expression that can be executed by the child node pushed down in the distributed database into the SQL instruction for instructing the child node to execute the relevant operation of the child query, the push-down execution plan of the child query can be described by the SQL protocol, and the push-down execution plan of the child query can be expressed to the child node of the distributed database in the SQL protocol. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In a concrete example, the abstract syntax tree can be understood as an abstract representation of the syntax structure of the source code. It represents the syntactic structure of the programming language in the form of a tree, each node on the tree representing a structure in the source code. The namespace can be understood as a form of code organization used in various languages, classified by namespace, to distinguish different code functions. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In a specific example, after the part of the relational algebra expression to be pushed down to the execution of the child node in the distributed database is determined by the CBO optimizer in the execution server of the distributed database, the part of the relational algebra expression to be pushed down to the execution of the child node in the distributed database may be converted to obtain the SQL instructions for instructing the child node to execute the operation related to the child query. The specific conversion process is similar to the above conversion process, and is not described herein again. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
By the query execution method provided by the embodiment of the application, the sub-queries in the received SQL request are converted to obtain the relational algebra expressions corresponding to the sub-queries, the parts, which can be pushed down to the sub-nodes in the distributed database, in the relational algebra expressions to be executed, are determined, so as to obtain the SQL instructions for indicating the sub-nodes to execute the related operations of the sub-queries, compared with the existing other methods, the sub-queries can be pushed down to the sub-nodes in the distributed database to be executed by determining the parts, which can be pushed down to the sub-nodes in the distributed database, in the relational algebra expressions to be executed, so as to effectively combine the sub-nodes in the distributed database to execute the sub-queries, therefore, the overall computing capacity of the distributed database can be fully utilized to effectively relieve the computing pressure of the execution server in the distributed database system.
The query execution method of the present embodiment may be executed by any suitable device having data processing capability, including but not limited to: cameras, terminals, mobile terminals, PCs, servers, in-vehicle devices, entertainment devices, advertising devices, Personal Digital Assistants (PDAs), tablet computers, notebook computers, handheld game consoles, smart glasses, smart watches, wearable devices, virtual display devices or display enhancement devices (such as Google Glass, Oculus rise, Hololens, Gear VR), and the like.
Referring to fig. 2A, a flowchart illustrating steps of a query execution method according to a second embodiment of the present application is shown.
Specifically, the query execution method of the present embodiment includes the following steps:
in step S201, a sub-query in the received SQL request is converted to obtain a relational algebra expression corresponding to the sub-query.
Since step S201 is similar to step S101 described above, it will not be described herein again.
In step S202, the portion of the relational algebra expression that can be pushed down to child node execution in the distributed database is determined.
Since step S202 is similar to step S102 described above, it is not described herein again.
In step S203, a portion of the relational algebra expression that can be pushed down to a child node in the distributed database for execution is converted to obtain an SQL instruction for instructing the child node to execute a related operation of the child query.
Since step S203 is similar to step S103 described above, it will not be described herein again.
In step S204, an execution result for the SQL instruction returned by the child node is received.
In the embodiment of the application, an executor in an execution server of the distributed database system receives execution results for SQL instructions returned by each child node. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In step S205, based on the whole execution plan of the sub-query, the execution result returned by the sub-node is processed to obtain a result set for the SQL request.
In the embodiment of the present application, the overall execution plan may be understood as an execution plan represented by a relational algebra expression corresponding to a sub-query. The execution results returned by the child nodes may be clustered or merged based on the overall execution plan of the child query to obtain a result set for the SQL request. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In step S206, a result set for the SQL request is returned to the client.
In an embodiment of the present application, an execution server in a distributed database system returns a result set for an SQL request to a client. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
In a specific example, as shown in fig. 2B, the distributed database system includes a client, an execution server connected to the client, and each child node connected to the execution server, for example, child nodes MySQL a, MySQL B, and so on. The execution server comprises a sub-query analyzer connected with the client, a CBO optimizer connected with the sub-query analyzer, and an executor connected with the CBO optimizer. The overall execution process of the sub-query is as follows: and the user sends an SQL request to the sub-query parser through the client. And analyzing the received sub-query through a sub-query analyzer to obtain a half-join operator and a connection condition of the half-join operator in the relational algebra expression corresponding to the sub-query, generating the relational algebra expression corresponding to the sub-query based on the connection condition of the half-join operator and the half-join operator, and transmitting the converted execution plan (the relational algebra expression) to the CBO optimizer. The CBO optimizer judges the pushdown execution plan according to the connection condition, and determines the execution plan to be pushed down according to the execution cost of the pushdown execution plan. After determining the execution plan to be pushed down, the CBO optimizer passes the overall execution plan of the sub-query (including the execution plan to be pushed down and the execution plan not to be pushed down) to the executor for execution. And the executor converts the execution plan of the part to be pushed down into an SQL instruction and sends the SQL instruction to the MySQL database of the child node for execution. And the MySQL databases of all the child nodes in the distributed database system execute the received SQL commands in parallel and feed back the execution results to the actuator. And the executor processes the execution result returned by the child node according to the overall execution plan, obtains a result set aiming at the SQL request, and feeds back the result set to the client of the user. The upper-layer processing in the figure can be understood as processing performed by the executor on the execution result returned by the child node according to the overall execution plan. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
On the basis of the first embodiment of the application, the execution result for the SQL instruction returned by the child node is received, and the execution result returned by the child node is processed based on the whole execution plan of the child query to obtain the result set for the SQL request, and then the result set for the SQL request is returned to the client.
The query execution method of the present embodiment may be executed by any suitable device having data processing capability, including but not limited to: cameras, terminals, mobile terminals, PCs, servers, in-vehicle devices, entertainment devices, advertising devices, Personal Digital Assistants (PDAs), tablet computers, notebook computers, handheld game consoles, smart glasses, smart watches, wearable devices, virtual display devices or display enhancement devices (such as Google Glass, Oculus rise, Hololens, Gear VR), and the like.
Referring to fig. 3, a schematic structural diagram of an execution apparatus for querying in the third embodiment of the present application is shown.
The query execution device of the embodiment includes: a first conversion module 301, configured to convert a sub-query in the received SQL request to obtain a relational algebra expression corresponding to the sub-query; a first determining module 302, configured to determine a portion of the relational algebra expression that can be pushed down to a child node in a distributed database for execution; a second conversion module 303, configured to convert a portion of the relational algebra expression that can be pushed down to a child node in the distributed database for execution, so as to obtain an SQL instruction for instructing the child node to execute a related operation of the child query.
The query execution device of this embodiment is used to implement the corresponding query execution method in the foregoing multiple method embodiments, and has the beneficial effects of the corresponding method embodiments, which are not described herein again.
Referring to fig. 4, a schematic structural diagram of an execution apparatus for querying in the fourth embodiment of the present application is shown.
The query execution device of the embodiment includes: a first conversion module 401, configured to convert a sub-query in a received SQL request to obtain a relational algebra expression corresponding to the sub-query; a first determining module 402, configured to determine a portion of the relational algebra expression that can be pushed down to a child node in a distributed database for execution; a second conversion module 405, configured to convert a portion of the relational algebra expression that can be pushed down to a child node in the distributed database for execution, so as to obtain an SQL instruction for instructing the child node to execute a related operation of the child query.
Optionally, the first conversion module 401 includes: an obtaining module 4011, configured to convert the sub-query based on the type of the sub-query, so as to obtain a join operator between relationships in the relational algebra expression and a join condition of the join operator; and the generating module 4012 is configured to generate a relational algebra expression corresponding to the sub-query based on the join operator and the join condition.
Optionally, the obtaining module 4011 is specifically configured to: if the type of the sub-query is a scalar type, obtaining the connection operator by using an inner connection operator or a left connection operator to cooperate with a semantic operator, and converting the association items of the sub-query of the scalar type into the connection condition, wherein the semantic operator is used for expressing error reporting semantics when the return result of the sub-query of the scalar type exceeds one row.
Optionally, the first determining module 402 is specifically configured to: if the split data structures of the relations on the two sides of the connection operator in the relational algebra expression are judged to be consistent, the connection condition of the connection operator is converted into a conjunction logic expression; circularly judging whether each sub-item in the conjunction logic expression is in an equivalence condition or not, and whether the operand of the equal sign of each sub-item is the column name of the relation or not; and if the union set of all the equivalence conditions in the conjunction logic expression covers the split column of the relationship, determining that the relational algebra expression is a part which can be pushed down to a child node in a distributed database for execution.
Optionally, the apparatus further comprises: a second determining module 403, configured to determine an execution cost of the portion of the relational algebraic expression that can be pushed down to the execution of the child node in the distributed database after the first determining module 402 determines the portion that can be pushed down to the execution of the child node in the distributed database; a third determining module 404, configured to determine, based on the execution cost, a portion of the relational algebra expression to be pushed down to a child node in the distributed database for execution.
The query execution device of this embodiment is used to implement the corresponding query execution method in the foregoing multiple method embodiments, and has the beneficial effects of the corresponding method embodiments, which are not described herein again.
Referring to fig. 5, a schematic structural diagram of an execution apparatus for querying in the fifth embodiment of the present application is shown.
The query execution device of the embodiment includes: a first conversion module 501, configured to convert a sub-query in a received SQL request to obtain a relational algebra expression corresponding to the sub-query; a first determining module 502, configured to determine a portion of the relational algebra expression that can be pushed down to a child node in a distributed database for execution; a second conversion module 503, configured to convert a portion of the relational algebra expression that can be pushed down to a child node in the distributed database for execution, so as to obtain an SQL instruction for instructing the child node to execute a related operation of the child query.
Optionally, the second conversion module 503 is specifically configured to: converting an execution plan of a part which can be pushed down to a child node in a distributed database to be executed in the relational algebra expression so as to obtain an abstract syntax tree corresponding to the execution plan; traversing the abstract syntax tree to generate a hierarchical namespace and connectivity; and generating SQL instructions for indicating the child nodes to execute the related operations of the child queries layer by layer from bottom to top based on the layered name space and the connection relation.
Optionally, the apparatus further comprises: a receiving module 504, configured to receive an execution result for the SQL instruction returned by the child node after the second conversion module 503 converts the portion of the relational algebra expression that can be pushed down to the child node in the distributed database for execution; a processing module 505, configured to process the execution result returned by the child node based on the whole execution plan of the child query, so as to obtain a result set for the SQL request; a returning module 506, configured to return the result set for the SQL request to the client.
The query execution device of this embodiment is used to implement the corresponding query execution method in the foregoing multiple method embodiments, and has the beneficial effects of the corresponding method embodiments, which are not described herein again.
Referring to fig. 6, a schematic structural diagram of a distributed database system in the sixth embodiment of the present application is shown.
The distributed database system provided by the embodiment comprises: the system comprises a client, an execution server connected with the client and a child node connected with the execution server; the client is used for responding to user operation and sending an SQL request to the execution server; the execution server is used for converting the sub-query in the received SQL request to obtain a relational algebra expression corresponding to the sub-query; determining a part of the relational algebra expression which can be pushed down to a child node in a distributed database for execution; converting a part of the relational algebra expression which can be pushed down to a child node in a distributed database for execution to obtain SQL instructions for indicating the child node to execute the related operation of the child query; and the child node is used for executing the related operation of the child query based on the SQL instruction. And the child nodes are child nodes of the distributed database.
In a specific example, the number of the child nodes of the distributed database is multiple, and the execution server is connected with the child nodes of the distributed database. In addition, each child node of the distributed database has a corresponding storage disk. The storage disk may store logical tables of a database, such as sub-tables, single tables, or broadcast tables, etc. The sub-table can be understood as a data table split by a splitting rule. The single table may be understood as a data table that is not split by a splitting rule, and is stored in a storage disk of a distributed database master node. The broadcast table may be understood as a data table that is not split by a splitting rule and is distributed across storage disks stored at distributed database nodes. It should be understood that the above description is only exemplary, and the embodiments of the present application are not limited in this respect.
The distributed database system of this embodiment is used to implement the corresponding query execution method in the foregoing method embodiments, and has the beneficial effects of the corresponding method embodiments, which are not described herein again.
Fig. 7 is a schematic structural diagram of an electronic device according to a sixth embodiment of the present application; the electronic device may include:
one or more processors 601;
a computer-readable medium 602, which may be configured to store one or more programs,
when the one or more programs are executed by the one or more processors, the one or more processors are caused to implement the method of executing a query as described in the first or second embodiment above.
Fig. 8 is a hardware structure of an electronic device according to a seventh embodiment of the present application; as shown in fig. 8, the hardware structure of the electronic device may include: a processor 701, a communication interface 702, a computer-readable medium 703 and a communication bus 704;
wherein the processor 701, the communication interface 702, and the computer-readable medium 703 are in communication with each other via a communication bus 704;
alternatively, the communication interface 702 may be an interface of a communication module, such as an interface of a GSM module;
the processor 701 may be specifically configured to: converting the sub-query in the received SQL request to obtain a relational algebra expression corresponding to the sub-query; determining a part of the relational algebra expression which can be pushed down to a child node in a distributed database for execution; and converting the part of the relational algebra expression which can be pushed down to the child node in the distributed database for execution so as to obtain SQL instructions for instructing the child node to execute the related operation of the child query.
The Processor 701 may be a general-purpose Processor, and includes a Central Processing Unit (CPU), a Network Processor (NP), and the like; but may also be a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), an off-the-shelf programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components. The various methods, steps, and logic blocks disclosed in the embodiments of the present application may be implemented or performed. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
The computer-readable medium 703 may be, but is not limited to, a Random Access Memory (RAM), a Read-Only Memory (ROM), a Programmable Read-Only Memory (PROM), an Erasable Read-Only Memory (EPROM), an electrically Erasable Read-Only Memory (EEPROM), and the like.
In particular, according to an embodiment of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code configured to perform the method illustrated by the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network via the communication section, and/or installed from a removable medium. The computer program, when executed by a Central Processing Unit (CPU), performs the above-described functions defined in the method of the present application. It should be noted that the computer readable medium described herein can be a computer readable signal medium or a computer readable storage medium or any combination of the two. The computer readable medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access storage media (RAM), a read-only storage media (ROM), an erasable programmable read-only storage media (EPROM or flash memory), an optical fiber, a portable compact disc read-only storage media (CD-ROM), an optical storage media piece, a magnetic storage media piece, or any suitable combination of the foregoing. In the present application, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In this application, however, a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wire, fiber optic cable, RF, etc., or any suitable combination of the foregoing.
Computer program code configured to carry out operations for the present application may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may operate over any of a variety of networks: including a Local Area Network (LAN) or a Wide Area Network (WAN) -to the user's computer, or alternatively, to an external computer (e.g., through the internet using an internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions configured to implement the specified logical function(s). In the above embodiments, specific precedence relationships are provided, but these precedence relationships are only exemplary, and in particular implementations, the steps may be fewer, more, or the execution order may be modified. That is, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The modules described in the embodiments of the present application may be implemented by software or hardware. The described modules may also be provided in a processor, which may be described as: a processor includes a first conversion module, a first determination module, and a second conversion module. The names of these modules do not form a limitation on the module itself in some cases, for example, the first conversion module may also be described as "a module that converts a sub-query in a received SQL request to obtain a relational algebraic expression corresponding to the sub-query".
As another aspect, the present application also provides a computer-readable medium on which a computer program is stored, which when executed by a processor, implements the method of executing a query as described in the first or second embodiment.
As another aspect, the present application also provides a computer-readable medium, which may be contained in the apparatus described in the above embodiments; or may be present separately and not assembled into the device. The computer readable medium carries one or more programs which, when executed by the apparatus, cause the apparatus to: converting the sub-query in the received SQL request to obtain a relational algebra expression corresponding to the sub-query; determining a part of the relational algebra expression which can be pushed down to a child node in a distributed database for execution; and converting the part of the relational algebra expression which can be pushed down to the child node in the distributed database for execution so as to obtain SQL instructions for instructing the child node to execute the related operation of the child query.
The expressions "first", "second", "said first" or "said second" used in various embodiments of the present disclosure may modify various components regardless of order and/or importance, but these expressions do not limit the respective components. The above description is only configured for the purpose of distinguishing elements from other elements. For example, the first user equipment and the second user equipment represent different user equipment, although both are user equipment. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of the present disclosure.
When an element (e.g., a first element) is referred to as being "operably or communicatively coupled" or "connected" (operably or communicatively) to "another element (e.g., a second element) or" connected "to another element (e.g., a second element), it is understood that the element is directly connected to the other element or the element is indirectly connected to the other element via yet another element (e.g., a third element). In contrast, it is understood that when an element (e.g., a first element) is referred to as being "directly connected" or "directly coupled" to another element (a second element), no element (e.g., a third element) is interposed therebetween.
The above description is only a preferred embodiment of the application and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention herein disclosed is not limited to the particular combination of features described above, but also encompasses other arrangements formed by any combination of the above features or their equivalents without departing from the spirit of the invention. For example, the above features may be replaced with (but not limited to) features having similar functions disclosed in the present application.

Claims (17)

1. A method for executing a query, the method comprising:
converting the sub-query in the received SQL request to obtain a relational algebra expression corresponding to the sub-query;
determining a part of the relational algebra expression which can be pushed down to a child node in a distributed database for execution;
and converting the part of the relational algebra expression which can be pushed down to the child node in the distributed database for execution so as to obtain SQL instructions for instructing the child node to execute the related operation of the child query.
2. The method of claim 1, wherein said converting the sub-query in the received SQL request to obtain the relational algebra expression corresponding to the sub-query comprises:
converting the sub-query based on the type of the sub-query to obtain a connection operator between the relations in the relational algebra expression and a connection condition of the connection operator;
and generating a relational algebra expression corresponding to the sub-query based on the connection operator and the connection condition.
3. The method of claim 2, wherein said converting the sub-query based on the type of the sub-query to obtain a join operator between relations in the relational algebraic expression and a join condition of the join operator comprises:
if the type of the sub-query is a scalar type, obtaining the connection operator by using an inner connection operator or a left connection operator to cooperate with a semantic operator, and converting the association items of the sub-query of the scalar type into the connection condition, wherein the semantic operator is used for expressing error reporting semantics when the return result of the sub-query of the scalar type exceeds one row.
4. The method of claim 1, wherein the determining the portion of the relational algebra expression that can be pushed down to child nodes in a distributed database comprises:
if the split data structures of the relations on the two sides of the connection operator in the relational algebra expression are judged to be consistent, the connection condition of the connection operator is converted into a conjunction logic expression;
circularly judging whether each sub-item in the conjunction logic expression is in an equivalence condition or not, and whether the operand of the equal sign of each sub-item is the column name of the relation or not;
and if the union set of all the equivalence conditions in the conjunction logic expression covers the split column of the relationship, determining that the relational algebra expression is a part which can be pushed down to a child node in a distributed database for execution.
5. The method of claim 1, wherein after determining the portion of the relational algebra expression that can be pushed down to child node execution in a distributed database, the method further comprises:
determining an execution cost of a part of the relational algebra expression which can be pushed down to child node execution in a distributed database;
and determining the part to be pushed down to the child node in the distributed database to execute in the relational algebra expression based on the execution cost.
6. The method of claim 1, wherein transforming the portion of the relational algebra expression that can be pushed down to a child node in a distributed database for execution to obtain SQL instructions for instructing the child node to perform operations comprises:
converting an execution plan of a part which can be pushed down to a child node in a distributed database to be executed in the relational algebra expression so as to obtain an abstract syntax tree corresponding to the execution plan;
traversing the abstract syntax tree to generate a hierarchical namespace and connectivity;
and generating SQL instructions for indicating the child nodes to execute the related operations of the child queries layer by layer from bottom to top based on the layered name space and the connection relation.
7. The method according to any one of claims 1 to 6, wherein after converting the portion of the relational algebra expression that can be pushed down to child nodes in a distributed database, the method further comprises:
receiving an execution result for the SQL instruction returned by the child node;
processing the execution result returned by the child node based on the whole execution plan of the child query to obtain a result set aiming at the SQL request;
and returning a result set aiming at the SQL request to the client.
8. An apparatus for executing a query, the apparatus comprising:
the first conversion module is used for converting the sub-query in the received SQL request so as to obtain a relational algebra expression corresponding to the sub-query;
the first determination module is used for determining a part of the relational algebra expression which can be pushed down to a child node in a distributed database to execute;
and the second conversion module is used for converting the part of the relational algebra expression which can be pushed down to the child node in the distributed database for execution so as to obtain the SQL instruction used for indicating the child node to execute the related operation of the child query.
9. The apparatus of claim 8, wherein the first conversion module comprises:
an obtaining module, configured to convert the sub-query based on a type of the sub-query, so as to obtain a join operator between relationships in the relational algebra expression and a join condition of the join operator;
and the generating module is used for generating a relational algebra expression corresponding to the sub-query based on the connection operator and the connection condition.
10. The apparatus according to claim 9, wherein the obtaining module is specifically configured to:
if the type of the sub-query is a scalar type, obtaining the connection operator by using an inner connection operator or a left connection operator to cooperate with a semantic operator, and converting the association items of the sub-query of the scalar type into the connection condition, wherein the semantic operator is used for expressing error reporting semantics when the return result of the sub-query of the scalar type exceeds one row.
11. The apparatus of claim 8, wherein the first determining module is specifically configured to:
if the split data structures of the relations on the two sides of the connection operator in the relational algebra expression are judged to be consistent, the connection condition of the connection operator is converted into a conjunction logic expression;
circularly judging whether each sub-item in the conjunction logic expression is in an equivalence condition or not, and whether the operand of the equal sign of each sub-item is the column name of the relation or not;
and if the union set of all the equivalence conditions in the conjunction logic expression covers the split column of the relationship, determining that the relational algebra expression is a part which can be pushed down to a child node in a distributed database for execution.
12. The apparatus of claim 8, further comprising:
a second determination module, configured to determine an execution cost of a portion of the relational algebraic expression that can be pushed down to execution of a child node in the distributed database after the first determination module determines the portion that can be pushed down to execution of the child node in the distributed database;
and the third determining module is used for determining the part to be pushed down to the child node in the distributed database to be executed in the relational algebra expression based on the execution cost.
13. The apparatus of claim 8, wherein the second conversion module is specifically configured to:
converting an execution plan of a part which can be pushed down to a child node in a distributed database to be executed in the relational algebra expression so as to obtain an abstract syntax tree corresponding to the execution plan;
traversing the abstract syntax tree to generate a hierarchical namespace and connectivity;
and generating SQL instructions for indicating the child nodes to execute the related operations of the child queries layer by layer from bottom to top based on the layered name space and the connection relation.
14. The apparatus according to any one of claims 8-13, further comprising:
the receiving module is used for receiving an execution result, which is returned by the child node and aims at the SQL instruction, after the second conversion module converts a part, which can be pushed down to the child node in the distributed database, of the relational algebra expression;
the processing module is used for processing the execution result returned by the child node based on the whole execution plan of the child query so as to obtain a result set aiming at the SQL request;
and the return module is used for returning the result set aiming at the SQL request to the client.
15. A distributed database system, the system comprising:
the system comprises a client, an execution server connected with the client and a child node connected with the execution server;
the client is used for responding to user operation and sending an SQL request to the execution server;
the execution server is used for converting the sub-query in the received SQL request to obtain a relational algebra expression corresponding to the sub-query; determining a part of the relational algebra expression which can be pushed down to a child node in a distributed database for execution; converting a part of the relational algebra expression which can be pushed down to a child node in a distributed database for execution to obtain SQL instructions for indicating the child node to execute the related operation of the child query;
and the child node is used for executing the related operation of the child query based on the SQL instruction.
16. An electronic device, comprising:
one or more processors;
a computer readable medium configured to store one or more programs,
when executed by the one or more processors, cause the one or more processors to implement a method of performing a query as claimed in any one of claims 1-7.
17. A computer-readable medium, on which a computer program is stored which, when being executed by a processor, carries out the method of executing a query as claimed in any one of claims 1 to 7.
CN201910754045.0A 2019-08-15 2019-08-15 Query execution method and device, electronic equipment and computer readable medium Pending CN112395303A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910754045.0A CN112395303A (en) 2019-08-15 2019-08-15 Query execution method and device, electronic equipment and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910754045.0A CN112395303A (en) 2019-08-15 2019-08-15 Query execution method and device, electronic equipment and computer readable medium

Publications (1)

Publication Number Publication Date
CN112395303A true CN112395303A (en) 2021-02-23

Family

ID=74601837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910754045.0A Pending CN112395303A (en) 2019-08-15 2019-08-15 Query execution method and device, electronic equipment and computer readable medium

Country Status (1)

Country Link
CN (1) CN112395303A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168620A (en) * 2022-02-11 2022-03-11 北京奥星贝斯科技有限公司 Execution plan processing method and device
CN114297224A (en) * 2021-12-22 2022-04-08 重庆邮电大学 RDF-based heterogeneous data integration and query system and method
CN114860764A (en) * 2022-05-26 2022-08-05 上海爱可生信息技术股份有限公司 Optimization method and system for distributed database query and electronic equipment
CN114860770A (en) * 2022-04-15 2022-08-05 北京科杰科技有限公司 Optimization method, system, computer device and medium based on data service
CN114969111A (en) * 2022-08-01 2022-08-30 北京奥星贝斯科技有限公司 Logic sub-plan execution method, device and system of distributed database
CN115033595A (en) * 2022-08-10 2022-09-09 杭州悦数科技有限公司 Query statement processing method, system, device and medium based on super node
WO2023019981A1 (en) * 2021-08-17 2023-02-23 华为云计算技术有限公司 Data query method and related device
CN116662395A (en) * 2023-07-24 2023-08-29 广州图灵科技有限公司 Distributed database parallel query method, system, device and storage medium

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023019981A1 (en) * 2021-08-17 2023-02-23 华为云计算技术有限公司 Data query method and related device
CN114297224A (en) * 2021-12-22 2022-04-08 重庆邮电大学 RDF-based heterogeneous data integration and query system and method
CN114168620A (en) * 2022-02-11 2022-03-11 北京奥星贝斯科技有限公司 Execution plan processing method and device
CN114860770A (en) * 2022-04-15 2022-08-05 北京科杰科技有限公司 Optimization method, system, computer device and medium based on data service
CN114860764A (en) * 2022-05-26 2022-08-05 上海爱可生信息技术股份有限公司 Optimization method and system for distributed database query and electronic equipment
CN114969111A (en) * 2022-08-01 2022-08-30 北京奥星贝斯科技有限公司 Logic sub-plan execution method, device and system of distributed database
CN115033595A (en) * 2022-08-10 2022-09-09 杭州悦数科技有限公司 Query statement processing method, system, device and medium based on super node
CN116662395A (en) * 2023-07-24 2023-08-29 广州图灵科技有限公司 Distributed database parallel query method, system, device and storage medium

Similar Documents

Publication Publication Date Title
CN112395303A (en) Query execution method and device, electronic equipment and computer readable medium
CN110633292B (en) Query method, device, medium, equipment and system for heterogeneous database
JP6617117B2 (en) Scalable analysis platform for semi-structured data
US10311055B2 (en) Global query hint specification
US20120254089A1 (en) Vector throttling to control resource use in computer systems
CN110795455A (en) Dependency relationship analysis method, electronic device, computer device and readable storage medium
CN102541631B (en) Execution plans with different driver sources in multiple threads
US10157234B1 (en) Systems and methods for transforming datasets
CN113051268A (en) Data query method, data query device, electronic equipment and storage medium
CN110688544A (en) Method, device and storage medium for querying database
US20240126752A1 (en) Joining javascript object notation (json) queries across cloud resources
CN113704291A (en) Data query method and device, storage medium and electronic equipment
CN113779349A (en) Data retrieval system, apparatus, electronic device, and readable storage medium
US11354313B2 (en) Transforming a user-defined table function to a derived table in a database management system
US20170132289A1 (en) Database entity analysis
CN112395302A (en) SQL instruction execution method and device, electronic equipment and computer readable medium
CN110674177B (en) Data query method and device, electronic equipment and storage medium
CN111078728B (en) Cross-database query method and device in database archiving mode
US9280582B2 (en) Optimization of join queries for related data
CN114490724B (en) Method and device for processing database query statement
CN116049232A (en) Sub-query extraction method, sub-query extraction device, electronic equipment and storage medium
CN114510605A (en) Data storage method and device, electronic equipment and storage medium
CN115994151B (en) Data request changing method, device, electronic equipment and computer readable medium
CN114780554B (en) Method and device for processing database query statement
CN115563148A (en) Database query method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination