1
MySQL Conference Liveblogging: MySQL Performance Under A Microscope: The Tobias And Jay Show (Wednesday 2:00PM)
Posted by Artem Russakovskii on April 16th, 2008 in Databases
- Jay Pipes, Tobias Asplund
- Finding out the number of rows that would have been returned (MyISAM and InnoDB)
- SQL_CALC_FOUND_ROWS and FOUND_ROWS()
- COUNT(*)
- MEMORY table
- if query cache is on, then it makes no difference
- if it's off
- Memory MyISAM is fastest
- FOUND_ROWS() is slightly slower than count(*)
- more in the slides that I'll add later
- quite a lot of humor, these guys are fun
- query union vs index_merge union
- SELECT … WHERE a UNION SELECT … WHERE b
vs
SELECT … WHERE a AND b - index_merge wins
- composite index vs index merge
- composite index is faster
- of course, multiple indexes are more flexible than composite index
- sort union vs composite index
- …
- unix time (int unsigned) vs datetime
- query cache disabled
- 100k rows
- now and 20 years back
- retrieval range between 50 and 365 days
- all data fits into memory
- UNIX_TIMESTAMP is worst
- DATETIME in the middle
- strtotime() fastest
- is BENCHMARK() a good simulation test?
- NOW()
- MONTH(NOW())
- MONTH('YYYY-MM-DD')
- DATE_FORMAT()
- SUBSTRING()
- all about the same if php benchmark script is used
- BENCHMARK() is very unreliable, the results vary a lot
- X in Y how many times?
- 3 different methods on mysql forge
- 2 UDFs and 1 using native functions
- query cache off
- 1K rows
- all rows have "/"
- count the number of "/"
- Marcelo's solution "COUNT_CHAR_OCCURRENCE": 4th place
- Garrett Hill's solution "countstring" (it's technically slightly wrong, because it doesn't account for multibyte characters): 2nd place
- Roland Bouman's solution using mysql functions: 1st place
- Jay's way: function in php: 3rd place
- MEMORY engine HASH index vs BTREE index
- BTREE is faster
- HASH uses less memory
In the meantime, if you found this article useful, feel free to buy me a cup of coffee below.