擴展 PHPUnit TestSuite

Maghead ORM/DBAL (由於現在涵蓋的部分越來越廣不知道怎麼稱呼比較適當)的開發中,需要大量針對不同的資料庫做單元測試,因此在內部我們抽象化了一個 Maghead\Testing\ModelTestCase 的類別,讓同一套抽象邏輯可以抽換不同的資料庫連線來做整合的測試。

在 Travis CI 上,我們採用帶入不同的環境變數 DB 來換掉測試案例使用的 DataSource ID,如 DB=sqlite, DB=mysql … 等等,如 Build #1889


MySQL Partition and InnoDB

前一篇文章談到 mysql innodb 處理 clustered index 的機制,所以就來談一下 mysql partition 機制。

由於 innodb 會優先使用 primary key 作為 clustered index 來劃分表格的儲存階層,無法避免的,製作 partition 時,就得將 partition key 加入到 primary key 內,這個時候選擇 primary key 以及 partition key 就變得相當重要,甚至可捨去 primary key 。