Search Results
https://dev.mysql.com/doc/internals/en/myisam-concurrent-insert.html
See also Bug#36618 (myisam insert not immediately visible to select from another client). To support concurrent inserts, every statement starts with copying MYISAM_SHARE::state.state to MI_INFO::save_state and lets MI_INFO::state point to the copy.
https://dev.mysql.com/doc/internals/en/myisam-files.html
When a normal table is opened for reading by a SELECT, MySQL will open it in read/write mode, but will not write anything to it. Some notes about MyISAM file handling: If a table is never updated, MySQL will never touch the table files, so it would ...
https://dev.mysql.com/doc/internals/en/ndb-directory.html
We generally use the term "ndb" when referring to the storage engine, and the term "MySQL Cluster" when referring to the combination of the storage engine and the rest of the MySQL facilities.
https://dev.mysql.com/doc/internals/en/nicely-displaying-trace.html
An alternative can be to send the trace to a file: SELECT TRACE INTO DUMPFILE <filename> FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; Then pass this file to some JSON viewer. Looking at a trace in the mysql command-line client can be cumbersome (though ...
https://dev.mysql.com/doc/internals/en/notes-on-mtr2.html
You must also use let $MYSQLD_DATADIR= `SELECT @@datadir`; New options max-test-fail: The number of test cases that can fail before the test run aborts. MTR2 has brought some new utility that can improve testing, but also some elements that can be ...
https://dev.mysql.com/doc/internals/en/open.html
For instance when a request comes in for a select on the table (tables are not open and closed for each request, they are cached). Synopsis virtual int open ( name, mode, test_if_locked); const char * name ; int mode ; uint test_if_locked ; ...
https://dev.mysql.com/doc/internals/en/optimizer-and-relations.html
SELECT * FROM Table1 WHERE s1 = 5 AND s2 = 5; When choosing a strategy to solve this query, the optimizer picks s2 = 5 as the driver because the index for s2 was created first. An ANDed search has the form condition1 AND condition2, as in this ...
https://dev.mysql.com/doc/internals/en/optimizer-determining-join-type.html
index: a sequential scan on an index ALL: a sequential scan of the entire table See: /sql/sql_select.h, enum join_type{}. For example, consider this query: SELECT * FROM Table1 WHERE indexed_column = 5 AND unindexed_column = 6 Since indexed_column ... When evaluating a conditional expression, MySQL decides what join type the expression ...
https://dev.mysql.com/doc/internals/en/optimizer-eliminating-dead-code.html
A transformation takes place for conditions that are always true, for example: WHERE 0=0 AND column1='y' In this case, the first condition is removed, leaving WHERE column1='y' See: /sql/sql_select.cc, remove_eq_conds(). SELECT * FROM Table1 WHERE ...A transformation also takes place for conditions that are always ...
https://dev.mysql.com/doc/internals/en/optimizer-partition-pruning.html
Partitions that did not get into this set (that is, those that were pruned away) will not be accessed at all: this is how query execution is made faster. With non-transactional tables such as MyISAM, locks are placed on entire partitioned table. It ...