Search Results
https://dev.mysql.com/doc/internals/en/myisam-concurrent-insert.html
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. The copy back is done in mi_update_status(), which is called from mi_lock_database() when ...
https://dev.mysql.com/doc/internals/en/myisam-files.html
Some notes about MyISAM file handling: If a table is never updated, MySQL will never touch the table files, so it would never be marked as closed or corrupted. If a table is marked readonly by the OS, it will only be opened in readonly mode. When a ...
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
Looking at a trace in the mysql command-line client can be cumbersome (though the pager less command makes it better). An alternative can be to send the trace to a file: SELECT TRACE INTO DUMPFILE <filename> FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; ...
https://dev.mysql.com/doc/internals/en/notes-on-mtr2.html
MTR2 has brought some new utility that can improve testing, but also some elements that can be pitfalls. Changes $MYSQLTEST_VARDIR/master-data -> $MYSQLD_DATADIR This change was introduced to work with parallel. Since MTR2 can run several instances ...
https://dev.mysql.com/doc/internals/en/open.html
Synopsis virtual int open ( name, mode, test_if_locked); const char * name ; int mode ; uint test_if_locked ; Description This is the open method. For instance when a request comes in for a select on the table (tables are not open and closed for ...
https://dev.mysql.com/doc/internals/en/optimizer-and-relations.html
An ANDed search has the form condition1 AND condition2, as in this example: WHERE column1 = 'x' AND column2 = 'y' Here, the optimizer's decision process can be described as follows: If (neither condition is indexed) use sequential scan. Otherwise, ...
https://dev.mysql.com/doc/internals/en/optimizer-determining-join-type.html
When evaluating a conditional expression, MySQL decides what join type the expression has. (Again: despite the word “join”, this applies for all conditional expressions, not just join expressions. index: a sequential scan on an index ALL: a ...
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(). A transformation also takes ...
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 ...