Tag Archives: table

GitHub 發展出來的 ALTER TABLE 方式

GitHub 解釋了他們在 MySQL 上 ALTER TABLE 的方式:「gh-ost: GitHub's online schema migration tool for MySQL」。 GitHub 的舊方式是使用 pt-online-schema-change,會遇到的問題有幾個,其中看起來只有 Non pausability 這個是真正的痛點: Non pausability: when load on the master turns high, you wish to throttle or suspend your pending migration. However a … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , | 2 Comments

PostgreSQL 對 Vacuum 效能的改善

在「No More Full-Table Vacuums」這邊提到了 PostgreSQL 在 vacuum 時效能的大幅改善,尤其是大型資料庫在 vacuum 時需要對整個表格從頭到尾掃一次以確保 transaction id 的正確性: Current releases of PostgreSQL need to read every page in the database at least once every 2 billion write transactions (less, with default settings) to verify that … Continue reading

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

PostgreSQL 9.5 將會有 Parallel Sequential Scan

在「Parallel Sequential Scan is Committed!」這邊看到 PostgreSQL 9.5 (還沒出) 將會有 Parallel Sequential Scan 的功能。 文章的作者直接拿了一個大家超常用的惡搞來示範,也就是經典的 LIKE '%word%': rhaas=# \timing Timing is on. rhaas=# select * from pgbench_accounts where filler like '%a%'; aid | bid | abalance | filler -----+-----+----------+-------- (0 rows) … Continue reading

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

MySQL 的 Index 設計技巧

Percona 的「Indexing 101: Optimizing MySQL queries on a single table」這篇講了最基本的 index 設計技巧,雖然文章裡沒提到,但最好是需要 B-tree 與 B+ tree 的背景知識。 MySQL 的 query 大致分成幾個階段。先決定要使用哪些 index (或是完全不用),然後透過 index 抓出符合條件資料 (或是 table scan),最後再細部過濾。 以文章裡提到的「Multiple inequalities」範例裡這樣的 SQL query 來討論: SELECT * FROM t WHERE c > … Continue reading

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

利用 data attribute 與 attr() 的 Pure CSS Responsive Table

查了 MDN 的說明,原來 attr() 在 IE8 就可以用了... 在這篇文章看到純 CSS 的 Responsive Table 技巧:「Responsive Tables in Pure CSS」,目標是把這樣的表格: 在寬度較小時自動變成這樣的形式: 用了 data attribute 與 attr(),再加上 before pseudo element。

Posted in Computer, CSS, Murmuring, Network, Programming, WWW | Tagged , , , , , , | Leave a comment

innodb_file_per_table 對於 CREATE TABLE 與 DROP TABLE 的速度

雖然平常應該不會常常用到 CREATE TABLE 與 DROP TABLE,不過還是很有趣的 benchmark:「Is MySQL’s innodb_file_per_table slowing you down?」。 重點在這段: With innodb_file_per_table=ON Schema and table creation = 1m54.852s Schema drops = 1m21.682s With innodb_file_per_table=OFF Schema and table creation = 0m59.968s Schema drops = 0m54.870s 不過作者測試時沒有用 ENGINE=COMPRESSED (必須在 … Continue reading

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

關於 RDBMS 的 Schema Migration...

在「NoSQL 大腸花」這份投影片裡面的 Page 12 有提到關於 RDBMS 的 Schema Migration: 以目前 open source 的兩個專案,MySQL 與 PostgreSQL 來看,裡面提到的 lock 應該都不是問題... 首先是 MySQL 的部份,真的量大的網站都應該是往 InnoDB 投靠,而 pt-online-schema-change 在這個領域則是處理的很好。 Facebook 的 Mark Callaghan 曾經在 2010 年寫過一篇關於 InnoDB 的 online schema change 的原理:「Online Schema Change … Continue reading

Posted in Computer, Database, Murmuring, MySQL, PostgreSQL, Software | Tagged , , , , , , , , , | 2 Comments

利用 pt-online-schema-change 同步 master 與 slave 的資料

在「Syncing MySQL slave table with pt-online-schema-change」這篇看到 master 與 slave 的資料不同步時,強制性同步的方法: pt-online-schema-change --alter 'ENGINE=INNODB' D=dbname,t=tblname 由於 pt-online-schema-change 的作法是建一個新的表格,然後把舊表格的資料寫過去,而這些行為會被 replicate 到新機器上,於是就同步了... 這招有趣 XDDD

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

Facebook 的 InnoDB patch 讓 table scan 速度變快...

Facebook 的 Database Engineering team 實作了 patch,讓 InnoDB 在 table scan 的速度大幅提昇:「Making full table scan 10x faster in InnoDB」。 第一個 patch 叫做 Logical Readahead。第二個 patch 是針對 async i/o 的改善 (Submitting multiple async I/O requests at once)。 引用文章內的幾段話就知道這幾個 patch 的功力了: Logical … Continue reading

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

Percona XtraDB Cluster 5.5.33-23-7.6...

Percona XtraDB Cluster (Galera Cluster) 出新版:「Percona XtraDB Cluster 5.5.33-23.7.6 is now available」。 看到了幾個比較特別的功能: Desync functionality has now been exposed to the client. This can be done either via /*! WSREP_DESYNC */ comment on the query or by setting the global … Continue reading

Posted in Computer, Database, MySQL, Software | Tagged , , , , , , , , , , , , , | 1 Comment