
存储
长空飞鹰
互联网IT技术族
展开
-
hbase常识及habse适合什么场景
当我们对于数据结构字段不够确定或杂乱无章很难按一个概念去进行抽取的数据适合用使用什么数据库?答案是什么,如果我们使用的传统数据库,肯定留有多余的字段,10个不行,20个,但是这个严重影响了质量。并且如果面对大数据库,pt级别的数据,这种浪费更是严重的,那么我们该使用是什么数据库?hbase数个不错的选择,那么我们对于hbase还存在下列问题:1.Column Family代表什么?转载 2016-03-04 16:29:11 · 618 阅读 · 0 评论 -
赶集mysql军规
赶集网mysql开发36军规写在前面的话:总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过。(一)核心军规(1)不在数据库做运算:cpu计算务必移至业务层(2)控制单表数据量:单表记录控制在1000w(3)控制列数量:字段数控制在20以内(4)平衡范式与冗余:为提高效率牺牲范式设计,冗余数据(5)拒绝3B:拒绝大sq转载 2016-03-03 14:18:49 · 370 阅读 · 0 评论 -
mysql索引总结
1 . 1 简 介为了满足对数据的快速访问, 我们通常需要将数据组织成一种有序的方式, 而原始 的情况下数据的物理存储顺序便可代表一种“序”, 但是由于物理存储的“序”只能是一 种,但我们业务的访问模式是多样的, 所以我们有了索引, 索引是一种以更小代价来组 织数据关系的一种“序”, 不同的索引可以满足不同的访问模式。索 引 的 前 提 就 是 了 解 业 务 的 访 问 模原创 2011-01-12 20:07:00 · 3136 阅读 · 3 评论 -
mysql事务总结
1 简介MySQL 框架本身不直接支持事务,而由引擎实现。常用引擎中,仅 innodb 支持事务, MyISAM 和 Heap 引擎皆不支持事务,下文对事务的介绍皆以 innodb 为准。MySQL框架提供多条语句用于操作事务,常用语句如下 START TRANSACTION COMMIT原创 2011-01-12 20:06:00 · 2450 阅读 · 1 评论 -
ACID
ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持交易(Transaction)的数据库系统,必需要具有这四种特性,否则在交易过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求. 原子性转载 2008-12-04 20:39:00 · 427 阅读 · 0 评论 -
MySQL数据类型及列类型
我们要把现实世界中的各种信息转换成计算机能理解的东西,这些转换后的信息就形成了数据。例 如,某人的出生日期是“1987年5月23日”,他的身高是170厘米,等等。数据不仅包括数字、字母、文字和其他特殊字符组成的文本形式的数据,而且还 包括图形、图像、动画、影像、声音等多媒体数据。但使用最多、最基本的仍然是文本数据。1. MySQL的数据类型 在MySQL中有如下几种数据类型: (1转载 2009-01-11 21:03:00 · 778 阅读 · 0 评论 -
数据库事务ACID
ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持交易(Transaction)的数据库系统,必需要具有这四种特性,否则在交易过程(Transactionprocessing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求.原子性整个转载 2009-02-17 08:57:00 · 497 阅读 · 0 评论 -
MySQL 常见错误提示的对照表
mysql出错了,以前往往靠猜。现在有了这张表。一查就出来了。 [中国站长站] 1005:创建表失败 [中国站长站] 1006:创建数据库失败 [中国站长站]1007:数据库已存在,创建数据库失败 [中国站长站] 1008:数据库不存在,删除数据库失败 [中国站长站] 1009:不能删除数据库文件导致删除数据库失败 Chinaz.com 1010:不能删除数据目录导致删转载 2009-02-17 11:03:00 · 408 阅读 · 0 评论 -
MySQL 服务器调优
利用服务器的几个调优技巧,让 MySQL 服务器飞速运行文档选项<trvalign="top"><tdwidth="8"&am转载 2009-02-17 11:09:00 · 438 阅读 · 0 评论 -
设置MySQL的系统变量以调优性能
1)、back_log: 要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。 back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TC转载 2009-02-17 11:11:00 · 496 阅读 · 0 评论 -
Mssql和Mysql的安全性分析
数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。大多数企业、组织以及政府部门的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,还掌握着敏感的金融数据。但是数据库通常没有象操作系统和网络这样在安全性上受到重视。数据是企业,组织的命脉所在,因此选择一款安全的数据库是至关重要的。大型网站一般使用oracle或DB2,而中小转载 2009-02-17 12:51:00 · 712 阅读 · 0 评论 -
主键生成策略
在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够 唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时 候不会出现张冠李戴的错误。数据库的主键生成有多种方式,每种方式都有其优点和缺点,应该根据不同的需求在主键的时间和空间效率上做平衡折中,从而选择不 同的主键生成策略。归纳起来,对主键的选择主要转载 2009-05-18 19:56:00 · 958 阅读 · 0 评论 -
mysql join总结
内连接:[inner|cross] join (不带inner或cross时也值内连接) 外连接: 左外连接:left [outer] join 右外连接:right [outer] join 错误语法: outer join full o原创 2008-12-05 08:36:00 · 679 阅读 · 0 评论 -
细聊分布式ID生成方法
一、需求缘起几乎所有的业务系统,都有生成一个记录标识的需求,例如:(1)消息标识:message-id(2)订单标识:order-id(3)帖子标识:tiezi-id这个记录标识往往就是数据库中的唯一主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。 这个记录标识上的查询,往往又有分页或者排序的业务转载 2016-03-03 15:03:02 · 470 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
数据结构及算法基础索引的本质MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),转载 2016-03-27 15:40:02 · 405 阅读 · 0 评论 -
HBase总结:LSM理解
讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来:哈希存储引擎 是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快,如果不需要有序的遍历数据,哈希表就是your Mr.RightB树存储引擎是B树(关于B树的由来转载 2016-03-04 17:10:53 · 516 阅读 · 0 评论 -
Hbase总结:Hbase中的Coprocessor
1.起因(Why HBase Coprocessor)HBase作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和、计数、排序等操作。比如,在旧版本的(统计数据表的总行数,需要使用Counter方法,执行一次MapReduce Job才能得到。虽然HBase在数据存储层中集成了MapReduce,能够有效用于数据表的分布式计算。然而在很多情况下,做一些简单转载 2016-03-04 17:49:39 · 769 阅读 · 0 评论 -
Redis与Memcached的区别
传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。 2.Mem转载 2016-03-11 15:05:22 · 319 阅读 · 0 评论 -
主从DB与cache一致性
本文主要讨论这么几个问题:(1)数据库主从延时为何会导致缓存数据不一致(2)优化思路与方案 一、需求缘起上一篇《缓存架构设计细节二三事》中有一个小优化点,在只有主库时,通过“串行化”的思路可以解决缓存与数据库中数据不一致。引发大家热烈讨论的点是“在主从同步,读写分离的数据库架构下,有可能出现脏数据入缓存的情况,此时串行化方案不再适用了”,这就是本文要讨论的主转载 2016-03-24 19:28:15 · 2161 阅读 · 0 评论 -
LSM树存储引擎
2.2.3 LSM树存储引擎LSM树(Log Structured Merge Tree)的思想非常朴素,就是将对数据的修改增量保持在内存中,达到指定的大小限制后将这些修改操作批量写入磁盘,读取时需要合并磁盘中的历史数据和内存中最近的修改操作。LSM树的优势在于有效地规避了磁盘随机写入问题,但读取时可能需要访问较多的磁盘文件。本节介绍LevelDB中的LSM树存储引擎。1.存储结构转载 2016-03-27 14:33:40 · 3469 阅读 · 0 评论 -
redis持久化策略RDB和AOF
Redis 持久化:redis 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到转载 2016-03-27 16:55:16 · 1938 阅读 · 0 评论 -
深入分析Parquet列式存储格式
Parquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,最新的版本是1.8.0。列式存储列式存储和行式存储相比有哪些优势呢?可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量。压缩编码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编转载 2016-04-18 16:58:07 · 1195 阅读 · 0 评论 -
RabbitMq、ActiveMq、ZeroMq、kafka之间的比较
MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。第一部分:RabbitMQ,ActiveMq,ZeroMq比较1、 TPS比较 一ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。这个结论来自于以下这篇文转载 2016-04-19 14:39:27 · 2591 阅读 · 0 评论 -
hbase二级索引
二级索引与索引Join是多数业务系统要求存储引擎提供的基本特性,RDBMS早已支持,NOSQL阵营也在摸索着符合自身特点的最佳解决方案。这篇文章会以HBase做为对象来讨论如何基于Hbase构建二级索引与实现索引join。文末同时会列出目前已知的包括0.19.3版secondary index, ITHbase, Facebook方案和官方Coprocessor的介绍。理论目标在H转载 2016-04-26 17:50:43 · 1841 阅读 · 0 评论 -
Redis关键点(自动bgrewriteaof)
Redis 2.4版本做了很多功能改进,尤其是aof这块变动较大。增加了自动的bgrewriteaof,开启两个后台线程来避免主线程fsync、rename、close等阻塞操作,另外修复了出现重复命令进入aof文件的bug,下面是基于2.4.1的源码aof这块的改进分析。旧的版本问题主要有:1 主线程aof的每次fsync(everysecond模式)在高并发下时常出现100ms转载 2016-04-29 14:17:03 · 2238 阅读 · 0 评论 -
redis优缺点总结
优点:1读写性能优异2支持数据持久化,支持AOF和RDB两种持久化方式3支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。4数据结构丰富:除了支持string类型的value外还支持string、hash、set、sortedset、list等数据结构。 缺点:1Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分原创 2016-04-29 14:32:58 · 44371 阅读 · 2 评论 -
codis评测
一. 压测环境1台3u8机器(PHP-C3)、1台lg 3u8机器(PHP-LG):运行PHP脚本,发起codis读写请求3台3u8机器(CODIS-C3):codis集群,运行1个proxy实例、2组redis(每组1主2从),proxy与redis混部 二. 压测方式1. 在PHP-C3、PHP-LG机器起多个PHP进程,以模拟并发请求;2. 每个PHP进程循环、同步发原创 2016-04-19 15:27:02 · 3184 阅读 · 1 评论 -
mysql引擎性能简单测试
[硬件配置]CPU : AMD2500+ (1.8G)内存: 1G/现代硬盘: 80G/IDE [软件配置]OS : Windows XP SP2SE : PHP5.2.1DB : MySQL5.0.37Web: IIS6 [MySQL表结构] CREATE TABLE `myisam`( `id` int(11) NOT NULL转载 2009-01-11 20:41:00 · 648 阅读 · 0 评论 -
mysql工具
官方提供的工具: MySQL Administrator GUI client 下载地址: http://dev.mysql.com/downloads/administrator/index.html 官方数据察看:MySQL Query Browser graphical client下载地址: http://dev.mysql.com/downlo转载 2009-02-17 08:58:00 · 540 阅读 · 0 评论 -
如何才能让你的SQL运行得更快
很多人在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。 在对它们进行适当的优化后,其运行速度有了明显地提高转载 2009-02-17 11:08:00 · 408 阅读 · 0 评论 -
SQL 优化 (某篇的精简版)
作者:fly_miss(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQLSERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclusteredindex,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引转载 2009-02-17 12:49:00 · 1664 阅读 · 1 评论 -
MySQL索引分析和优化
索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。转载 2009-03-01 13:56:00 · 547 阅读 · 0 评论 -
数据库的事务隔离级别
未提交读(read uncommitted) 提交读(read committed) 重复读(repeatable read) 序列化(serializable) 更新丢失(lost update):当系统允许两个事务同时更新同一数据时,发生更新丢失。 脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。 非重复读(nonrepeatable read):同一转载 2009-05-18 08:28:00 · 480 阅读 · 0 评论 -
数据仓库InfoBright测试报告
<!--table.MsoNormalTable {font-size:10.0pt; font-family:"Times New Roman","serif"}--> 1 背景介绍 1.1 InfoBright简介InfoBright)集成的开源数据仓库软件,可作为MySQL。Infobright索引的模式,而是采用了基于列存储+的模式,在执行转载 2010-12-30 19:08:00 · 1619 阅读 · 0 评论 -
存储过程编写经验和优化措施
一、适合读者对象:数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人。 二、介绍:在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书写又没有一定的规范,将会影响以后的系统维护困难和大SP逻辑的难以理解,另外如果数据库的数据量大或者项目对SP的性能要求很转载 2009-05-18 08:29:00 · 499 阅读 · 0 评论 -
完整性约束
1 数据的完整性 约束是用来确保数据的准确性和一致性。数据的完整性就是对数据的准确性和一致性的一种保证。 数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。分为以下四类: 1 实体完整性:规定表的每一行在表中是惟一的实体。 2 域完整性: 是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。 3 参照完整性:转载 2009-03-03 13:50:00 · 742 阅读 · 0 评论 -
连接池技术
随着信息技术的高速发展与广泛应用,数据库技术在信息技术领域中的位置越来越重要,尤其是网络应用和电子商务的迅速发展,都需要数据库技术支持动态Web站点的运行,而传统的开发模式是:首先在主程序(如Servlet、Beans)中建立数据库连接;然后进行SQL操作,对数据库中的对象进行查询、修改和删除等操作;最后断开数据库连接。使用这种开发模式,对于一个简单的数据库应用,由于数据库的访问不是很频繁转载 2008-12-04 20:53:00 · 820 阅读 · 0 评论 -
四大主流数据库比较
一、开放性 1. SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据库。 2. Oracle 能在所有主流平台上运行(包括 win转载 2008-12-04 20:52:00 · 1436 阅读 · 4 评论 -
数据库连接池的原理机制
1、基本概念及原理 对于共享资源,有一个很著名的设计模式:资源池(Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大转载 2009-02-17 11:06:00 · 553 阅读 · 0 评论 -
数据库中文问题总结
在开发项目过程中间,使用 hibernate作为数据持久化层来封装对数据库进行的操作。其中经常会碰到一些数据库的中文问题。下面对其中经常碰到的情况作一个总结。(下面的文字也参考了网上一些资料。但是出处无从考证。不好意思) Mysql:如果使用 mysql数据库,那么在配置数据库过程中间最好设置mysql的数据库编码为 utf-8,配置图如下,注意要选择中前面的单选按钮 。 在h转载 2009-02-17 11:05:00 · 498 阅读 · 0 评论