Php 对于简单的操作,Cassandra比Mysql慢很多?
我看到很多这样的语句:“Cassandra写得非常快”,“Cassandra读得比写慢,但比Mysql快得多” 在我的windows7系统上: 我安装了默认配置的Mysql。 我安装了默认配置的PHP5。 我安装了默认配置的Casssandra 在mysql上进行简单的写测试:“插入Php 对于简单的操作,Cassandra比Mysql慢很多?,php,mysql,performance,cassandra,Php,Mysql,Performance,Cassandra,我看到很多这样的语句:“Cassandra写得非常快”,“Cassandra读得比写慢,但比Mysql快得多” 在我的windows7系统上: 我安装了默认配置的Mysql。 我安装了默认配置的PHP5。 我安装了默认配置的Casssandra 在mysql上进行简单的写测试:“插入wp_test(id,title)值('id01','test')”给我的结果是:0.0002(s) 对于1000个插件:0.1106(s) 对Cassandra进行简单相同的写测试:$column_faily->i
wp_test
(id
,title
)值('id01','test')”给我的结果是:0.0002(s)
对于1000个插件:0.1106(s)
对Cassandra进行简单相同的写测试:$column_faily->insert('id01',array('title'=>'test'))给我的结果是:0.005(s)
对于1000个插件:1.047(s)
对于读取测试,我还发现Cassandra比mysql慢得多
所以问题是,我在Cassadra上的一次写操作有5ms,这听起来正确吗?或者出现了问题,应该至少为0.5ms。MySQL驱动程序的成熟度,特别是PHP5.3中改进的MySQL驱动程序,可能会对测试产生一些影响。查询中数据的简单性也完全可能会影响结果——可能在100个值的插入中,Cassandra会变得更快
从命令行尝试相同的测试,看看时间戳是什么,然后尝试使用不同数量的值。你不能只做一个测试,就以此为基础做出决定。Cassandra从并行化和批处理中获益匪浅。尝试在100个线程中的每一个线程上进行100万次插入(每个线程都有自己的连接&一批100次),看看哪一个更快 最后,Cassandra insert性能应该相对稳定(在很长时间内保持高吞吐量)。有了MySQL,你会发现,一旦用于索引的btree内存增长过大,它就会急剧下降。当人们说“Cassandra比MySQL快”时,他们的意思是当你处理TB的数据和许多同时出现的用户时。Cassandra(和许多分布式NoSQL数据库)针对多个节点上的数百个同时读写器进行了优化,而MySQL(和其他关系数据库)在单个节点上的优化速度非常快,但当您试图跨多个节点扩展它们时,它们往往会崩溃。顺便说一句,这种折衷有一个概括——绝对最快的磁盘I/O是普通的旧UNIX平面文件,许多对延迟敏感的金融应用程序正是出于这个原因使用它们的 如果你正在构建下一个Facebook,你需要像Cassandra这样的东西,因为一个MySQL盒子永远经不起数千次同时读写的惩罚,而有了Cassandra,你可以扩展到数百个数据节点并轻松处理这些负载。看
另一个用例是当您需要对TB或PB的数据应用大量批处理能力时。Cassandra或HBase非常棒,因为它们与MapReduce集成,允许您在数据节点上运行处理。使用MySQL,您需要提取数据并将其分散到处理节点的网格中,这将消耗大量网络带宽并带来许多不必要的复杂性。许多用户空间因素都会影响写入性能。例如:
- 每个数据库服务器配置中都有几十个设置
- 表结构和设置
- 连接设置
- 查询设置
如果您真的想要快速插入,请附加到ramdisk上的文件。并且可能会有一些有用的建议。如果Cassandra在Linux系统上更快乐,我也不会感到惊讶。您不能只使用一条记录进行测试。用一百万来测试。MySQL的写入速度会慢一些(特别是在使用InnoDB的情况下),但基于主键的读取速度可能会快一些。@ceejayoz,在linux系统上测试过,samre resultcassandra是按比例构建的。有了这样一个基准(一个客户机只做1000次插入),mysql将获胜。当你的mysql超过一台机器时,你将从cassandra中获得优势,你必须将数据和负载分散到多台机器上。我的问题是,对于单个服务器,每次写入操作大约5毫秒。这个速度听起来正确吗?例如,如果有人告诉我他的mysql不是