![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
nosql——cassandra
文章平均质量分 72
jessicaWX
花开无需太盛
展开
-
对于sql语句中的select处理和where处理
这两天分析一些复杂的sql语句处理,很多条件夹杂在一起的时候,先后的顺序直接决定先后的顺序区别。对于一条sql语句select ... ... from table where ... ...的处理则是先where条件对于底层的过滤,然后select后面的在过滤结果集!以前总觉得top和rownum没有区别,现在发现一个在select后面,一个在where后面区别很大。原创 2012-06-13 00:05:21 · 671 阅读 · 0 评论 -
nosql中的index
cassandra中的SecondaryIndex的应用场景主要在于没有带着rowkey的查询。虽然带着rowkey的条件进行检索式cassandra这种非关系型数据库的主流检索,但是使用nosql DB的时候,往往一些统计功能,或者公共的功能,(例如关注度最高的微博,操作次数最多的操作等等)这些不需要和用户绑定,但是又是很多应用不可少的检索功能。并且在cassandra这种海量级的nosql D原创 2013-03-19 16:00:18 · 1331 阅读 · 0 评论 -
cassandra节点异常数据处理——HintedHandOff
cassandra的HintedHandOff的功能主要是当节点掉线,或者各个副本节点中网络闪断的时候,此时数据的保存,等节点间恢复正常以后,副本数据就可以一致了。1、Hints表的表结构当副本节点传输数据失败以后,数据就会被保存在hints系统表中。hints系统表的表结构为,compositeCF,rowkey为target_id,即节点的token值的uuid;composi原创 2013-03-18 21:03:18 · 2530 阅读 · 0 评论 -
cassandra row的快速检索3—keycache
cassandra的应用中最主要的查询一般是带着rowkey所进行的查询,所以这个查询最主要的就是通过rowkey找到对应数据的位置。而cassandra是流动型的nosql DB,这样数据只有在一个sstable中才会将每个rowkey对应的row进行合并处理,那么查询的时候,即使带着rowkey,也需要查询出每个sstable中对应的rowkey的位置。cassandra的一组sstabl原创 2013-03-17 13:42:39 · 2199 阅读 · 0 评论 -
cassandra的删除
在cassandra1.2版本删除以前,删除基本上只有整个Column的删除,整个SuperColumn的删除,整个Rowkey的删除。在cassandra1.0.6版本中,DeletionInfo只有两个属性:1、markedForDeleteAt,删除的毫秒数,用于判断记录是否有效的;2、localDeletionTime,删除时间的秒数,用于记录是否需要物理删除。 protected原创 2013-03-12 16:25:09 · 2207 阅读 · 0 评论 -
cassandra row的快速检索2—indexinfo
cassandra的sstable为一组db文件,除了数据data.db文件和记录rowkey bloomfilter的filter.db文件,还有index.db文件和static.db文件等。而index.db文件主要是记录着data.db文件中的rowkey的位置,来帮助在rowkey的检索的时候,迅速地定位到data.db中的位置。indexinfo主要应用于两处:一处是rowkey的原创 2013-03-13 13:54:15 · 1116 阅读 · 0 评论 -
数据恢复之commitlog
cassandra作为海量数据处理的DB,为了提升性能,则先将数据写入到内存表memtable中,然后当memtable达到一定容量条件时,再将memtable中数据持久化到硬盘上。但是如果系统宕机,或者重启,那么内存的数据就会丢失,所以需要一个保护功能——commitlog,来恢复原来存在于内存表中的数据。1、commitlog触发的条件条件1:CF所在的Keyspace的属性d原创 2013-03-07 21:55:58 · 2368 阅读 · 0 评论 -
cassandra1.2中的内存管理
cassandra数据库通过数据写入以后是直接存放在内存中,当内存中的数据达到一定容量的时候,再将数据持久化到磁盘上去。这样写入的性能在一定条件下可以堪比内存数据库。cassandra是基于java开发的一款数据库,在1.0版本以前基本上是通过java虚拟机自己来回收垃圾对象,管理内存。要是使用cassandra在长期高压力下进行数据的写入,java的内存碎片就会表现得特别严重。因为数据首先写原创 2013-03-06 17:45:26 · 1053 阅读 · 0 评论 -
cassandra1.0引入的3种集合结构ISortedColumns的比较
在早期的cassandra的版本中,cassandra的memtable,数据检索的时候暂时存放的ColumnFamily,基本上只有一种结构就是ConcurrentSkipListMap。ConcurrentSkipListMap通过名字就知道是线程安全的集合,并且内部是内部是采用链表的结构,所以检索的性能也很高。但是作为数据库而言,底层结构的性能即使是纳秒级的差距,都会对数据库的性能产生比较大原创 2013-03-05 16:19:14 · 743 阅读 · 0 评论 -
cassandra--standCF--composite
对于cassandra的数据存储结构最主要的就是key-value的结构化存储,cassandra中有两种表的类型,一种是SuperColumnFamily,另一种是StandColumnFamily今天学习了一下cassandra1.1里面的standCF的compositeNamerowey compositeName1+columnName1value c原创 2012-07-13 23:35:11 · 453 阅读 · 0 评论 -
cassandra的数据类型
cassandra从一开始只支持BytesType比较器,到现在cassandra1.2支持的类型已经越来越多了,基本上都在org.apache.cassandra.db.marshal包下面。所有的比较器基本上都是继承AbstractType.java抽象类的。1、单列类型单种类型的Type,主要实现有Ascii,Boolean,Bytes,Date,Decimal,Double原创 2013-03-22 16:44:06 · 1866 阅读 · 0 评论