By James Qi, 2015年10月26日 在阿裡雲RDS數據庫服務器中将MySQL InnoDB引擎表轉為壓縮格式 今年以來将我們以前托管或者租用的服務器全面轉向阿裡雲,除了采用ECS服務器以外,還有一項重要的是采用了RDS數據庫服務器,這對于服務的穩定性、各項指标的監控、調優等都有幫助。 不過随着近期更多數據
By James Qi, 2015年7月20日 Drupal 6數據庫MyISAM轉InnoDB後性能下降打補丁 周末把雲數據庫RDS進行了配置升級,上面的一些站點數據表從MyISAM轉為了InnoDB,今天早上來發現IOPS異常升高,網站打開困難,查看實時實例會話,發現有很多這樣的語句堆積: SELECT COUNT(pid) FROM url_alias 在Google中搜索了一下,這篇文章說明很多人也遇到過這種問題COUNT(*) is an expensive query in InnoDB.,Drupal 6默認的數據庫表引擎是MyISAM,上面那句統計數量的查詢語句瞬間可以執行完,但對InnoDB引擎來說需要全表掃描來獲得統計數
By James Qi, 2015年7月12日 試用阿裡雲RDS的MySQL壓縮存儲引擎TokuDB 以前就用過自己搭建MySQL服務器的兩種存儲引擎MyISAM和InnoDB(也用過一點Memory方式),在今年初轉向阿裡雲關系型數據庫服務RDS的時候,看到可調參數中有一個TokuDB,不過不太了解也沒有管。 最近同事轉給我阿裡雲介紹TokuDB的文章,其中壓縮存儲的特性對我們來說很有吸引力,因為我們的數據庫一般都偏大,已經轉到阿裡雲的就有幾百個GB了,加上以後要轉的肯定是TB數量級的,而且目前還是用的MyISAM,如果用InnoDB的話,那還要擴大數倍,僅僅是存儲的費用就讓人難以承受。但MyISAM存在表容易損壞的問題,往後用的人越來越少,Drupal 7
By James Qi, 2015年7月10日 Drupal 7 Ubercart在MySQL 5.6中需要使用InnoDB引擎 以前使用的MySQL存儲引擎考慮到用多塊硬盤放置各個庫以便分散負載都是固定為MyISAM,現在搬遷到阿裡雲RDS後,考慮到查詢效率及空間大小也保持繼續用MyISAM。不過今天同事發現一個銷售數據的網站在購物車結算的時候報錯: PDOException: SQLSTATE[HY000]: General error: 1785 When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, updates to non-transactional tables can only be done in either autocommit
By James Qi, 2014年5月2日 列出MySQL數據庫服務器上所有庫和表及引擎屬性 最近在對國内服務器進行硬盤的替換升級的時候,發現有一台服務器把數據庫遷移到新硬盤後,以前的老硬盤依然非常繁忙(用iostat檢查),仔細查看後,發現有一些MySQL數據庫用的InnoDB格式,即使把數據庫目錄搬遷後,實際數據依然放置在以前的硬盤上。 Drupal 7默認是采用InnoDB數據庫引擎以利用其一些獨特的特性,但我們的系列網站數據量很大,需要分散放置各子網站的數據庫才好,所以我們都是改為使用MyISAM數據庫,以前曾經修改過Drupal的Core文件來實現數據庫引擎的變更,但這在Drupal系統升級的時候就丢失了,這樣導緻一些新建網站的數據庫表,以及一些
By James Qi, 2012年3月22日 将Drupal 7默認的MySQL引擎從InnoDB改為MyISAM 前段時間安裝Drupal 7的時候就遇到自動在MySQL中使用InnoDB的情況,而且好像是即使MySQL默認引擎為MyISAM也依舊使用InnoDB。雖然InnoDB有自己的特點,Drupal 7選用這個也正常,但對于我們來說,有多個子網站的時候,以前是将數據庫分散到多塊硬盤上的,就需要用MyISAM來讓每個子網站有獨立的目錄比較方便,所以還是需要能使用MyISAM。 按照網上找到的一篇文章,修改includes/database/mysql/shema.inc這個文件可以解決,雖然修改drupal core文件不是一個很好的辦法,先這樣用。