Tag Archives: innodb

InnoDB 的 MVCC 繁忙時的效能問題

在 Facebook 上看到 Percona 的人修正了 InnoDB 的 MVCC 在繁忙時會有 的效能問題: 在 MySQL 官方的 bug tracking system 是「InnoDB's MVCC has O(N^2) behaviors」這個,可以看到給的重製範例是在 transaction 內大量塞 INSERT 進去後,另外一個 transaction 使用 secondary index 就會受到影響。 裡面也有提到「Secondary index updates make consistent reads do O(N^2) undo page … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Programming, Software|Tagged , , , , , , , , , , , , , |Leave a comment

Percona 比較 MySQL 與 MariaDB 預設值的差異

Percona 的人花了些時間整理 MySQL 5.7 與 MariaDB 10.2 在預設值上的差異:「MySQL and MariaDB Default Configuration Differences」。 整體可以感覺到 MariaDB 10.2 相較於 MySQL 5.7 還是頗偏 MyISAM 的設計,可能跟 Monty (Michael Widenius) 的偏好有關吧... 不過技術面上來說,MariaDB 10.2 是基於 5.5 分支出來一路改出來的,當時的 InnoDB 跟現在的版本比起來的確沒那麼強... 不過這畢竟只是預設值,看過留個印象就好...

Posted in Computer, Database, MariaDB, Murmuring, MySQL, Software|Tagged , , , , , , , , , , , , |Leave a comment

Facebook 把 InnoDB 換成 MyRocks 的計畫

在「Migrating a database from InnoDB to MyRocks」這邊講到了 Facebook 把 MySQL 的 InnoDB 換成 MyRocks 的計畫。 Facebook 已經大量導入全 Flash 的環境,於是現在 InnoDB (Compressed) 的情況類似於這樣: 可以看到空間是最大的問題 (Space-bound),而非 CPU 或是 I/O,這在純 Flash 的機器上還蠻有可能的,因為純 Flash 能提供的 I/O capacity 超高,加上 Facebook 把 MySQL 當作後端儲存設備而已,CPU 的使用量可以預期不高... 然後他們估算 … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Software|Tagged , , , , , , , , , |Leave a comment

InnoDB 與 MyRocks 之間的取捨

MyRocks 的主要作者 Mark Callaghan 整理了一篇關於大台機器下,資料可以放到記憶體內的效能比較:「In-memory sysbench, a larger server and contention - part 1」。 這其實才是一般會遇到的情況:當事業夠大時,直接花錢買 1TB RAM + 數片 PCI-E SSD 的機器用錢換效能... (主要應該會在記憶體花不少錢,剛剛查了一下,現在白牌的 server 一台大約七十萬就可以擺平?兩台做 HA 也才一百四十萬,對有這個規模的單位來說通常不是大問題...) 而三種不同的 case 裡面,最後這個應該是最接近真實情況的: 可以看到 InnoDB 在幾乎所有項目都還是超越 MyRocks (只有 random-points 與 insert-only 輸)。 不知道後續的開發能量還會有多少... … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software|Tagged , , , , , , , , , , |Leave a comment

MySQL 上不同 Isolation Level 對效能的影響

目前看到的結論都是:MySQL (InnoDB) 上因為高度對 RR (REPEATABLE-READ) 最佳化,使得 RR 的效能反而比 RC (READ-COMMITTED) 以及 RU (READ-UNCOMMITTED) 都好。 不清楚 RR/RC/RU 差異的可以參考維基百科上「Isolation (database systems)」的解釋... 從 2010 年在測 5.0 的「Repeatable read versus read committed for InnoDB」到 2015 年測 5.7 的「MySQL Performance : Impact of InnoDB Transaction … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software|Tagged , , , , , , , , , , , |Leave a comment

小台機器上的 innodb_purge_threads 對效能的影響

雖然「MyISAM, small servers and sysbench at low concurrency」這篇標題是在講 MySQL 上的 MyISAM,但還是有提到一些 InnoDB 的東西... 其中提到了 innodb_purge_threads 對效能的影響: the default value for innodb_purge_threads, which is 4, can cause too much mutex contention and a loss in QPS on small servers. For sysbench … Continue reading

Posted in AWS, Cloud, Computer, Database, Murmuring, MySQL, Network, Software|Tagged , , , , , , , , , , , , , , |Leave a comment

MySQL 上 Replication 的方案

Percona 的人整理了一篇關於 Replication 的方案 (以及 NDB,不過這邊就先偷偷跳過去...),雖然標題寫的是 High Availability:「The MySQL High Availability Landscape in 2017 (The Elders)」。 先講他給的另外兩個方案,一個是 Shared Storage,另外一個是 NDB。 其中 Shared Storage 其實在儲存空間端還是有單點失效的問題,而 NDB 的特性跟 InnoDB 不同,有很多概念要重新學... 如果就這三個比較,常見的還是第一個提到的 Replication。 其實把 Replication 用熟的話已經可以解決不少問題了 (不論是早期的 MMM,或是 MHA)。而且因為技術已經發展很久了,大家幾乎都很熟特性 (以及 bug XD),網路上可以找到不少資料,甚至 Percona … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software|Tagged , , , , , , , , |Leave a comment

MySQL 總算要拔掉 mysql_query_cache 了

半官方的 MySQL blog 上宣佈了拔掉 mysql_query_cache 的計畫:「MySQL 8.0: Retiring Support for the Query Cache」。 作者開頭引用了 ProxySQL 的人對 MySQL Query Cache 的說明: Although MySQL Query Cache was meant to improve performance, it has serious scalability issues and it can easily become a … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Software|Tagged , , , , , , , , , , , , , , , , , , |Leave a comment

InnoDB redo log 大小對效能的影響

在「Benchmark(et)ing with InnoDB redo log size」這邊看到在討論 InnoDB redo log 的大小對效能的影響 (也就是 innodb_log_file_size 與 innodb_log_files_in_group)。 開頭就有先提到重點,在新版 MySQL 裡,幾乎所有的情況比較大的 redo log 有比較好的效能 (平均值): tl;dr - conclusions specific to my test A larger redo log improves throughput A larger redo log helps more … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software|Tagged , , , , , , , , , , , , , , , , |Leave a comment

Oracle 官方的 InnoDB Cluster 出 GA 了...

Oracle 推出的 InnoDB Cluster 進入 GA 了,不過先觀望看看就好:「MySQL InnoDB Cluster GA is Available Now!」。 The GA release of InnoDB Cluster builds upon the great work that the MySQL Development Team has done on Group Replication, filling out the rest of the … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Software|Tagged , , , , , , , , , |Leave a comment