May 24, 2012

Post: Index Condition Pushdown in MySQL 5.6 and MariaDB 5.5 and its performance impact

… the same way this blog post is aimed at a new optimizer enhancement Index Condition Pushdown (ICP). Its available in both MySQL… take a look briefly at what this enhancement actually is, and what is it aimed at. Index Condition Pushdown Traditional B-Tree indexindex parts after the part on which range condition is applied cannot be used for filtering records. For example, suppose you have a

Post: Multi Range Read (MRR) in MySQL 5.6 and MariaDB 5.5

how many times the buffer used by MRR had to be reinitialized, because the buffer was small and not all index… causes the counters Handler_read_key and Innodb_rows_read to be incremented by TWO. It does …clearly a part of the optimizer’s job to select the best query execution plan. I had noted a

Post: Join Optimizations in MySQL 5.6 and MariaDB 5.5

… BKA is being used then, after the selected rows are read from table1, the values of indexed columns that will be used to perform a lookup on table2 are batched together and sent to…_orderdate LIMIT 10; In-memory workload Now let’s see how effective are the join optimizations when the workload fits entirely…

Post: Troubleshooting MySQL Memory Usage

… at Oracle, MariaDB team or Drizzle team to take a look into solving this problem. You …_schema to see how much memory is being used by current MEMORY tables: mysql> select sum(data_length+index_length… #sql516_1c42_1 TABLE_ROWS: 2 AVG_ROW_LENGTH: 257 DATA_LENGTH: 126984 INDEX_LENGTH: 0 CREATE_TIME: …

Post: InnoDB's gap locks

a shared gap lock preventing the insertion of data to other sessions. How to troubleshoot gap locks? Is possible to detect those gap locks using

Post: How to recover deleted rows from an InnoDB Tablespace

to find the different indexes and types. mysql (information_schema) > select i.INDEX_ID, i.NAME FROM INNODB_SYS_INDEXESuse constraints_parser to recover the rows in a human readable format. ~/recovery-tool# ./constraints_parser -5 -D -f pages-1329221407/FIL_PAGE_INDEX

Post: 3 ways MySQL uses indexes

row lookup. Very common problem I see is multi column indexes which are used but only to their short prefix which is not very selective. Ahow MySQL uses single index – there are more complex rules of how indexes will be used if you look at multiple indexes usage with “index merge” Using Index to

Post: How to load large files safely into InnoDB with LOAD DATA INFILE

SELECT queries might have to scan through lots of obsolete, but not-yet-purged, row versions. Later, the purge thread will have torows were small). But how to do this without splitting the file? The answer lies in the Unix fifo. I created a

Post: Multi Column indexes vs Index Merge

…spoke about how MySQL uses the index but not exactly what it gets from the index – typically (unless it is covering index) MySQL gets arow pointer…no choice but only to use combined index: mysql [localhost] {msandbox} (test) > explain select avg(length(val)) from idxtest ignore index(i1,i2) where …

Post: How adding another table to JOIN can improve performance ?

how to make MySQL Optimizer to do what we want to do – Just add yet another table toUsing index *************************** 2. row *************************** id: 1 select_type: SIMPLE table: g type: index possible_keys: PRIMARY key: PRIMARY key_len: 4 ref: NULL rows: 10 Extra: Using index