数据库与Nosql
文章平均质量分 73
lt200819
这个作者很懒,什么都没留下…
展开
-
Mysql百万级数据查询优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: s...原创 2013-06-26 17:24:45 · 146 阅读 · 0 评论 -
infobright的中文编码问题
中文乱码的问题的终极解决方案就是所有地方都用同一个字符集,gbk或者utf8,我选用了utf8 infobright的设置方法和mysql自身的大同小异 1.新建数据库时设置default character set 为utf8,defualt collation为utf8_bin 2.新建表时也指定为utf8 3.设置/etc/my-ib.cnf中 collation_server=...原创 2013-09-04 18:23:39 · 197 阅读 · 0 评论 -
Infobright查询优化
前面已经分析了Infobright的构架,简要介绍了Infobright的压缩过程和工作原理。现在来讨论查询优化的问题。 (1)配置环境 在Linux下面,Infobright环境的配置可以根据README里的要求,配置brighthouse.ini文件。 (2) 选取高效的数据类型 参见前面章节。 (3)使用comment lookup ...原创 2013-08-19 19:59:19 · 139 阅读 · 0 评论 -
Infobright comment lookup使用
前面的章节一直涉及到comment lookup,这里将简单介绍comment lookup的使用。 comment lookup只能显式地使用在char或者varchar上面。Comment Lookup可以减少存储空间,提高压缩率,对char和varchar字段采用comment lookup可以提高查询效率。 Comment Lookup实现机制很像位图索引,实现上利用简短的数...原创 2013-07-25 23:40:13 · 96 阅读 · 0 评论 -
Infobright的数据类型
Infobright里面支持所有的MySQL原有的数据类型。其中Integer类型比其他数据类型更加高效。尽可能使用以下的数据类型: TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT DECIMAL(尽量减少小数点位数) DATE ,TIME 效率比较低的、不推荐使用的数据类型有: BINARY VARBINARY FLOAT ...原创 2013-07-25 23:36:04 · 136 阅读 · 0 评论 -
Infobright工作原理
前面已经简要分析了Infobright的构架,现在来介绍Infobright的工作原理。 粗糙集(Rough Sets)是Infobright的核心技术之一。Infobright在执行查询的时候会根据知识网络(Knowledge Grid)把DP分成三类: 相关的DP(Relevant Packs),满足查询条件限制的DP 不相关的DP(Irrelevant Packs),不...原创 2013-07-25 23:35:18 · 185 阅读 · 0 评论 -
列式数据库之infobright
infobright的优点有很多,简单列举如下: Infobright的优点: (1)高压缩比率 (2)快速响应复杂的分析查询语句 (3)随着数据库的逐渐增大,查询和装载性能基本保持稳定 (4)没有特殊的数据仓库模型(比如星状模型、雪花模型)要求 (5)无需要物化视图、复杂的数据分区策略、索引 (6)实施...原创 2013-07-25 23:32:57 · 107 阅读 · 0 评论 -
Infobright构架分析
Infobright的总体构架图如下: 如上图所示,Infobright采用了和MySQL一致的构架,分为两层。上层是服务及应用管理,下层是存储引擎。Infobright的默认存储引擎是brighthouse,但是Infobright还可以支持其他的存储引擎,比如MyISAM、MRG_MyISAM、Memory、CSV。Infobright通过三层来组织数据,分别是DP(Data ...原创 2013-07-25 15:27:48 · 70 阅读 · 0 评论 -
两阶段提交协议(two phase commit protocol,2PC)
两阶段提交协议(two phase commit protocol,2PC)可以保证数据的强一致性,许多分布式关系型数据管理系统采用此协议来完成分布式事务。它是协调所有分布式原子事务参与者,并决定提交或取消(回滚)的分布式算法。同时也是解决一致性问题的一致性算法。该算法能够解决很多的临时性系统故障(包括进程、网络节点、通信等故障),被广泛地使用。但是,它并不能够通过配置来解决所有的故障,在某些情...原创 2013-07-24 16:15:13 · 134 阅读 · 0 评论 -
数据库事务隔离级别与封锁协议
一、事务的4个基本特征 1、原子性 (Atomicity ) 要么全执行,要么都不执行。 2、一致性( Consistency ) 事务在系统完整性中实施一致性,这通过保证系统的任何事务最后都处于有效状态来实现。 3、隔离性 ( Isolation) 在隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。 4、持久性 (Durabili...原创 2013-07-24 15:49:25 · 434 阅读 · 0 评论 -
MySQL Infobright-数据仓库笔记
由于项目中的登录log一直比较大,目前是每周切分一张表,每次做月季度数据分析的时候就很痛苦,今天特定请教了一下公司DBA的同学,学到了两个解决方法。一个是把每天的登录按照位运算的形式保存,查询的时候使用bit_count(field)来计算,速度会大大提升,这个以后在项目中实践了再来分享;另一个就是使用Infobright引擎,Infobright是一个列存数据仓库软件,可以与MySQL集成,...原创 2013-07-18 18:01:02 · 146 阅读 · 0 评论 -
Nosql数据库笔谈
NoSQL数据库笔谈 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 不要删除数据 RAM是硬盘,硬盘是磁带 Amdahl定律和Gustafson定律 万兆以太网 手段篇 一致性哈希 亚马逊的现状 算法的选择 Quorum NRW Vector clock Virtual node go...原创 2013-07-18 12:14:11 · 445 阅读 · 0 评论 -
数据库查询的3个优化方法
在优化查询中,数据库应用(如MySQL)即意味着对工具的操作与使用。使用索引、使用EXPLAIN分析查询以及调整MySQL的内部配置可达到优化查询的目的。 任何一位数据库程序员都会有这样的体会:高通信量的数据库驱动程序中,一条糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响。 如同其它学科,优化查...原创 2013-07-17 20:57:35 · 131 阅读 · 0 评论 -
两阶段提交协议
两阶段提交协议 实现分布式事务的关键就是两阶段提交协议。在此协议中,一个或多个资源管理器的活动均由一个称为事务协调器的单独软件组件来控制。此协议中的五个步骤如下: • 应用程序调用事务协调器中的提交方法。 • 事务协调器将联络事务中涉及的每个资源管理器,并通知它们准备提交事务(这是第一阶段的开始)。 • 为 了以肯定的方式响应准备阶段,资源管理器必须将自己置于以下状态:确保能在被...原创 2013-07-10 20:27:48 · 150 阅读 · 0 评论 -
SQL删除重复记录
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢? 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) >...原创 2013-10-11 10:44:33 · 78 阅读 · 0 评论