Search Results
https://dev.mysql.com/doc/internals/en/optimizer-early-nulls-filtering.html
We make the following inference: (tblY.key_partN = tblX.column) => (tblX.column IS NOT NULL) The original equality can be checked only after we've read the current rows of both tables tblX and tblY. Suppose we have a join order such as this one: ...
https://dev.mysql.com/doc/internals/en/optimizer-group-by-related-conditions.html
The optimizer transforms queries of the form SELECT DISTINCT column1 FROM Table1; to SELECT column1 FROM Table1 GROUP BY column1; if and only if both of these conditions are true: The GROUP BY can be done with an index. These are the main ...
https://dev.mysql.com/doc/internals/en/optimizer-not-relations.html
It is a logical rule that column1 <> 5 is the same as column1 < 5 OR column1 > 5 However, MySQL does not transform in this circumstance. If you think that a range search would be better, then you should do your own transforming in such cases. It is ...
https://dev.mysql.com/doc/internals/en/optimizer-or-relations.html
The above warning does not apply if the same column is used in both conditions. An ORed search has the form condition1 OR condition2, as in this example: WHERE column1 = 'x' OR column2 = 'y' Here the optimizer's decision is to use a sequential scan. There is also an option to use index merge under such ...
https://dev.mysql.com/doc/internals/en/optimizer-order-by-clauses.html
For the query: SELECT * FROM Table1 WHERE column1 > 'x' AND column2 > 'x' ORDER BY column2; if both column1 and column2 are indexed, the optimizer will choose an index on ... In general, the optimizer will skip the sort procedure for the ORDER BY ...
https://dev.mysql.com/doc/internals/en/optimizer-range-join-type.html
To the optimizer, column1 BETWEEN 5 AND 7 is the same as this expression column1 >= 5 AND column1 <= 7 and again, MySQL treats both expressions the same. Some conditions can work with indexes, but over a (possibly wide) range of keys. The optimizer ...
https://dev.mysql.com/doc/internals/en/optimizer-union-queries.html
Therefore, for this query: SELECT * FROM Table1 WHERE column1 = 'x' UNION ALL SELECT * FROM TABLE1 WHERE column2 = 'y' if both column1 and column2 are indexed, then each SELECT is done using an indexed search, and the result sets are merged. Notice ...
https://dev.mysql.com/doc/internals/en/perfect-cleanup.html
However, proper cleanup should still be a responsibility of both the test author and reviewer. Cleaning up becomes much more comfortable and less error prone if you create your "own" database and create all tables there. At the end of the test, you ...
https://dev.mysql.com/doc/internals/en/prepared-stored.html
Finally, the query is passed to the execution runtime — an interpreter that operates with and modifies both the parsed tree and the execution plan in order to execute the query. Let us start with a general description of the MySQL statement ...
https://dev.mysql.com/doc/internals/en/record-and-blob-length-encoding.html
Both lengths are encoded in 1 to 5 bytes, depending on its value. Since the compressed data file should be usable for read-only purposes by the MySQL database management system, every record starts on a byte boundary. For easier handling by the ...