慢得多我有一个非规范化表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