1
muxi 2013-01-05 23:23:57 +08:00
囧,mysql 在5.1之后就支持很大的query buffer,如果你的内存足够大的话,设置这个参数就行了
而且你说的根本不是一回事,mysql慢是因为他的存储引擎设计,如果mysql 换成handle socket 存储引擎,速度比MongoDB不慢 接下来的mysql 5.6的大幅改进,会让各位惊喜 |
3
muxi 2013-01-05 23:30:59 +08:00
@wuxqing 很多,比如Innodb几乎重写了,速度和安全性较以前有大幅的提升,集成了更多oracle的技术积累,数据库内部开始支持KV DB(直接集成了Memcache,你以后直接访问DB就能访问到缓存了),还有其他的更优秀功能加入,但我更期待NDB引擎的植入,这样连索引都可以直接放到内存去了
|
4
liprais 2013-01-05 23:41:57 +08:00
memsql
|
5
Veelian 2013-01-05 23:45:20 +08:00 via iPhone
@muxi 觉着很难啊,从实现原理来看,KVDB是散列无序,而关系数据库是有序索引,如果把KVDB引擎做到关系数据库里那不又成KVDB了么
|
8
sivacohan 2013-01-06 02:07:49 +08:00
MySQL不是B-tree吗?
话说B-tree是什么…… |
9
BigZ 2013-01-25 13:01:14 +08:00
实际上很多应用就这样做的
mysql的优势做持久存储,成熟稳定,性能适中 |
10
ipconfiger 2013-01-25 13:04:02 +08:00
MySQL很早就有内存表......
|
11
kernel1983 2013-01-25 13:40:25 +08:00
尽量避免复杂的sql join, 你的系统就差不多哦已经是nosql了
比如将user的所有post ids存起来, 这样连where都不用了, 直接select from IN 然后将数据的index和payload分开, 总结起来就是尽量从对索引的依赖转变成KV的编程方法, 加上点分布式可扩展, 靠用nosql产品省掉智力劳动, 算偷懒吧 我自己完成了一个简单的nosql框架 https://github.com/kernel1983/NoMagic, 已经生产环境下使用. 但是无文档, 请随意参考修改 |
12
BOYPT 2013-01-25 13:53:13 +08:00
其实NOSQL重点解决的不是存取速度问题,而是在数据分布性、冗余性、一致性三点间的取舍之间取得另外一个均衡点。
因为时间空间等客观限制,任何数据都无法完全3点都极度保证的,NOSQL剪除了数据关系这层模型,在存储技术难度上降低一些等级,让3点到达一个更符合需求的均衡点。 NOSQL不是因为快才提出的概念。 |
13
udonmai 2013-01-25 14:03:48 +08:00
这是要看应用场景的。。。你见过哪个公司会全盘接收内存式的NoSQL?
举个例子,据SINA自己说它是世界上最大的Redis使用者,然而Redis在微博也就只占很小的比例,而且因为是内存式的,即便可以定时写磁盘,它还是不稳定。而且NoSQL不支持完整事务。所以光快而不考虑其他因素是无意义的。 同样的,关系型数据库的症结还在于扩展性和性能,它有很好的模式支持以及持久性,同时通过各种sharding或者replication来冗余和支持大数据。放内存只能部分增加读写的性能,缓解IO问题,而对其他各方面而言,只会减弱。 而且就像楼上说的,关系型数据库们都有缓冲层,可大可小,但是毕竟内存有限,缓存还是无法保存所有的数据,所以和操作系统内存一样用一些例如FIFO的替换算法来重建缓存。即便如此,该读磁盘的时候,延时还是相当可怕。 所以说到底放内存是不现实的,各种存储都有相应的tradeoff。 不久前大家开始考虑到SSD了,虽然目前性价比不高,但已经开始普及了。类似公开的像FB和baidu都在部署了,很多机房也都上了全SSD。它的性能介于内存和磁盘,目前而言完全胜任。 学术界还在为CAP而苦苦挣扎,目前没有万全的办法,Google的spanner就是底层NoSQL盖上关系型SQL(简而言之是这样,具体参照论文)以达到两者的平衡,获得两者的益处。不过话是这么说,终究还是会有tradeoff。 |
14
loddit 2013-01-26 23:28:59 +08:00
@sivacohan 太搞笑了,直接看 wiki 呗 http://en.wikipedia.org/wiki/B-tree
|
15
jones 2013-01-26 23:43:48 +08:00 via Android
@BigZ 不是简单协议简化,本质区别是绕过了MySQL的sql parse层,没有了语法解析优化这一层,基本就是是直接对innodb读写了,速度不比其他nosql产品慢
|
16
aa88kk 2013-01-27 00:01:07 +08:00
MYSQL 早就支持memory存储引擎而且可以选择hash index.
|
17
liangdi 2013-01-28 04:21:31 +08:00
nosql和sql的本质区别 并不是 内存不内存的区别。。。 主要还是储存格式的区别
|