慢得多我有一個非規範化表product
有大約6萬行(〜2GB)主要用於查找。字段包括price, color, unitprice, weight, ...
MySQL集羣比InnoDB的
我有color
等查詢條件被從Web動態生成BTREE索引,如
select count(*)
from product
where color = 1 and price > 5 and price < 100 and weight > 30 ... etc
和
select *
from product
where color = 2 and price > 35 and unitprice < 110
order by weight
limit 25;
我曾經使用InnoDB和試圖MEMORY表,並切換到NDB希望更多的併發查詢可以更快地完成。我有兩個具有相同架構,索引和數據的表。一個是InnoDB,另一個是NDB。但結果非常令人失望:對於上面提到的查詢,InnoDB比NDB快50倍。這就像0.8 seocond vs 40秒。對於這個測試,我反覆運行一個選擇查詢。 InnoDB和NDB查詢都使用color
上的相同索引。
我在雙Xeon 5506(總共8個內核),運行CentOS 5的32GB內存上使用了mysql-5.1.47 ndb-7.1.5。我設置了2個NDB數據節點,一個MGM節點和一個MYSQL節點同一個盒子。對於我分配的每個節點,如9GB內存,也嘗試MaxNoOfExecutionThreads=8, LockPagesInMainMemory, LockExecuteThreadToCPU
和許多其他配置參數,但沒有運氣。當NDB運行查詢時,我的峯值CPU負載僅爲200%,即8個內核中只有2個處於忙碌狀態。大部分時間它都是100%。我正在使用ndbmtd
,並在數據節點日誌中進行了驗證,並且確實生成了LQH線程。 我也試過解釋,分析 - 它只是顯示Sending data
大部分時間都在消耗。我也通過網上提供的一些Mysql Cluster調優文檔,在我的情況下不是很有幫助。
任何人都可以在此提供一些線索?有沒有更好的方法來調整NDB數據庫?欣賞它!
問題應該是「MySQL Cluster比Innodb慢得多」? – Martin 2010-10-02 19:58:12
你的表上定義了哪些索引? – Martin 2010-10-02 20:00:28
innodb和ndb中使用的索引是相同的,'color'是int(11)類型。 – 2010-10-03 01:42:21