关于Cassandra的问题
地球上为什么会有人用Java编写数据库引擎?
我可以理解为什么你想要一个Java接口,但引擎...
我的印象是没有什么比C / C ++快,并且数据库引擎不应该比最大速度慢,当然也不会使用垃圾收集......
任何人都能解释一下,为什么Cassandra可以比在C / C ++代码上运行的普通SQL更快?
修改:
对不起“为什么地球上的地狱”的一部分,但它对我来说真的没有任何意义。
我忽略了一个数据库,不像一般的花园变量用户程序,只需要启动一次,然后运行很长一段时间,也可能作为服务器上唯一的程序,这显然是一个重要的性能差异。
我更多地比较/引用了一个'不合适的'(温和地说)我在撰写本文时使用的Java税收计划(或者更愿意使用)。
实际上,与将Java用于税务程序不同,使用Java编写专用服务器程序非常有意义。
答案 0 :(得分:101)
你是什么意思,C ++?如果你有几十年的时间,手动编码组装会更快。
答案 1 :(得分:54)
我可以看到几个原因:
答案 2 :(得分:32)
为什么地球上任何人都会在JAVA中编写数据库引擎?
平台独立性是服务器的一个重要因素,因为与桌面PC相比,你拥有更多硬件和操作系统的异质性。另一个是安全。不必担心缓冲区溢出意味着大多数最糟糕的安全漏洞根本不可能。
我的印象是 没有比C / C ++更快的了 数据库引擎不应该是 任何慢于最大速度,和 当然不会使用垃圾 集...
您的印象不正确。 C / C ++不一定比Java更快,而现代垃圾收集器在这方面有很大的作用,因为它们使对象创建速度极快。
答案 3 :(得分:14)
不要忘记,Java VM使用即时(JIT)引擎,该引擎执行动态优化,使Java在速度方面与C ++相当。请记住,Java是一种非常高效的语言(尽管它是反对者)并且可移植,并且具有JIT优化功能,这意味着Java对于类似的东西来说并不是一个不合理的选择。
答案 4 :(得分:7)
现代Java运行时的性能损失并不大,Java中的编程比c中的编程容易出错。