数据库技术

  • 15个初学者必看的基础SQL查询语句
    15个初学者必看的基础SQL查询语句

    本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插入SQL 我们在开始创建数据表和向表中插入演示数据之前,我想给大家解释一下实时数据表的设计理念,这样也许能帮助大家能更好的理解SQL查询. 在数据库设计中,有一条非常重要的规则就是要正确建立主键和外键的关系. 现在我们来创建几个餐厅订单管理的数据表,一共用到3张数据表,Item Master表.Order Master表和Order Detail表. 创建表: 创建Item Maste

    数据库技术May 4

  • MYSQL数据丢失讨论
    MYSQL数据丢失讨论

    1. 概述 很多企业选择MySQL都会担心它的数据丢失问题,从而选择Oracle,但是其实并不十分清楚什么情况下,各种原因导致MySQL会丢失部分数据.本文不讨论Oracle和MySQL的优劣,仅仅关注MySQL丢失数据的几种情况.希望能够抛砖引玉,让各位MySQL大牛们梳理出MySQL最安全或者性价比合适的适合各种应用场景的方案. 2. 问题定义 一般我们希望把一系列的数据作为一个原子操作,这样的话,这一系列操作,要么提交,要么全部回滚掉. 当我们提交一个事务,数据库要么告诉我们事务提交成功了

    数据库技术May 4

  • Hive中实现Group By后,取Top K条记录

    RT,在Hive中,使用了Group By后,是无法再sort,再取Top K的,我们可以用UDF + distributed by + sort by 实现这个功能. 参考自:EXTRACT TOP N RECORDS IN EACH GROUP IN HADOOP/HIVE Assume you have a table with three columns: user, category and value. For each user, you want to select top N

    数据库技术May 2

  • Leveldb源码分析3 Cache

    leveldb 实现了一个LRUCache.和标准的LRUCache一样没有什么特别之处. LRUCache内部有一个Hash表用于快速查找key对应的双向链表,双向链表中记录了value的值. 利用双线链表实现LRUCache的算法在<操作系统>中描述的很清楚,这里不再描述. hashtable不是c++标准库的一部分,出于代码移植的考虑,leveldb自己实现了一个哈希表(HandleTable),通过测试发下这个HandleTable比g++4.4.3自带的hashtable快5%(这个

    数据库技术May 1

  • 关于MongoDB同步延迟问题

    当你的用户抱怨修改过的信息不改变,删除掉的数据还在显示,你掐指一算,估计是数据库主从不同步. 与其他提供数据同步的数据库一样,MongoDB也会遇到同步延迟的问题,在MongoDB的Replica Or provideserythromycin stearate 500mglike though. Hairhttp://blog.kaluinteriors.com/iqi/thyroxine-to-buy-without-perscription.htmlproducto tea long,li

    数据库技术April 30

  • 查看mysql进程--show processlist

    用show processlist 查看当前运行状态. mysql> show processlist; 下面介绍下各列的含义: id,线程编号,当要关闭某一进程时执行 kill id: user列,显示当前进程用户: host列,显示当前进程是从哪个IP地址和哪个端口号发出来的: db列,显示当前这个进程目前连接的是哪个数据库: command列,显示当前连接进程所执行命令的类型或状态,一般就是休眠(sleep),查询(query),连接 (connect): time列,这个状态持续的时间,

    数据库技术April 30

  • Cassandra代替Redis?

    最近用Cassandra的又逐渐多了,除了之前的360案例,在月初的QCon Shanghai 2013 篱笆网也介绍了其使用案例.而这篇百万用户时尚分享网站feed系统扩展实践文章则提到了Fashiolista和Instagram从Redis迁移到Cassandra的案例.考虑到到目前仍然有不少网友在讨论Redis的用法问题,Redis是一个数据库.内存.还是Key value store?以及Redis和memcache在实际场景的抉择问题,因此简单谈下相关区别. 首先,Redis和Cass

    数据库技术April 30

  • 揭秘阿里服务互联网金融的关系数据库--OceanBase
    揭秘阿里服务互联网金融的关系数据库--OceanBase

    编者按:时至今日,"Big data"(大数据)时代的来临已经毋庸置疑,尤其是在电信.金融等行业,几乎已经到了"数据就是业务本身"的地步.这种趋势已经让很多相信数据之力量的企业做出改变.为了应对大数据的冲击,淘宝将以前的Oracle.小型机.高端存储模式转变到现今的MySQL.OceanBase.Hbase.MongoDB等数据库,并使用普通PC服务器.本篇文章来自蚂蚁金服高级研究员阳振坤,将会介绍OceanBase如何服务互联网金融业务,以及实现过程中的一些技术细

    数据库技术April 30

  • 从一条select语句看Oracle数据库查询工作原理

    假如,我们现在利用Select语句从数据库查询数据,Oracle数据库是如何运作的呢?从中我们可以领悟到什么呢?下面,就结合一条简单的select语句,看看Oracle数据库后台的运作机制.这对于我们之后的系统管理与故障排除非常有帮助. 第一步:客户端把语句发给服务器端执行. 当我们在客户端执行select语句时,客户端会把这条SQL语句发送给服务器端,让服务器端的进程来处理这语句.也就是说,Oracle客户端是不会做任何的操作,他的主要任务就是把客户端产生的一些SQL语句发送给服务器端.虽然在

    数据库技术April 29

  • ORACLE数据库使用的常见问题(三)

    41. 怎样把"&"放入一条记录中? insert into a values (translate ('at{&}t','at{}','at')): 42. EXP如何加QUERY参数? EXP USER/PASS FILE=A.DMP TABLES(BSEMPMS) QUERY='"Where EMP_NO='S09394'": 43. 如何创建SPFILE? SQL> connect / as sysdba SQL> select

    数据库技术April 28

  • Oracle语句优化规则汇总(6)

    1. 基础表的选择 基础表(Driving Table)是指被最先访问的表(通常以全表扫描的方式被访问). 根据优化器的不同, SQL语句中基础表的选择是不一样的. 如果你使用的是CBO (COST BASED OPTIMIZER),优化器会检查SQL语句中的每个表的物理大小,索引的状态,然后选用花费最低的执行路径. 如果你用RBO (RULE BASED OPTIMIZER) , 并且所有的连接条件都有索引对应, 在这种情况下, 基础表就是FROM 子句中列在最后的那个表. 举例: SELEC

    数据库技术April 26

  • Oracle事务管理相关问题总结

    1.oracle对一条sql语句的执行是怎么管理并发和恢复控制的? 一条符合语法的sql语句,定义了对数据库的操作.此操作执行的时刻,对应了数据库的一个数据状态.可以这样理解这个状态:到此执行时刻为止,没有任何数据库语句级操作正在并发执行:就是说实际上正在并发执行的多个语句级操作可以假定在此语句操作之后执行.这里强调语句级操作,是指如果一个事务包含多个操作语句,在此时刻实际已经执行了其中几个,此时刻也正在执行某一个语句,那么不能简单地认为前面几个执行的操作语句也还没发生,这是要看事务的隔离级别的

    数据库技术April 26

  • Mysql存储过程-基本知识

    存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 create procedure sp_name() begin ......... end 二.调用存储过程 1.基本语法:call sp_name() 注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递 三.删除存储过程 1.基本语法: drop procedure sp_name//

    数据库技术April 26

  • 安装完 MySQL 后必须调整的 10 项配置

    当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议.许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即使是这里有好几百个配置项.这篇文章的目的在于给你一份非常重要的配置项清单. 我们曾在几年前在博客里给出了这样的建议,但是MySQL的世界变化实在太快了! 写在开始前- 即使是经验老道的人也会犯错,会引起很多麻烦.所以在盲目的运用这些推荐之前,请记住下面的内容: 一次只改变一个设置!这是测试改变是否有益的唯一方法. 大多数配置能在运行时使用SE

    数据库技术April 26

  • mysql的字符集与校验规则概念小介

    刚刚接触mysql的人(like me),可能对这2个概念不是太理解,这里小小解释一下,希望能说明清楚这个问题. 字符集,character set,就是一套表示字符的符号和这些的符号的底层编码:而校验规则,则是在字符集内用于比较字符的一套规则.字符集还是比较容易理解的,主要是校验规则,下面我简单举个例子来说明一下: 如在某个字符集"X"的A与a,他们的底层编码分别是A=0,a=100.这里符号"A""a"和底层编码"0"&q

    数据库技术April 26

  • GitHub迁移数据库,借助MySQL大行其道!
    GitHub迁移数据库,借助MySQL大行其道!

    GitHub,作为广泛使用的开源代码库以及版本控制系统,其数据库MySQL性能的优劣对整个网站平台有着举足轻重的影响.接下来我们一起跟随GitHub基础架构团队的步伐,来重温去年8月做的一次重大MySQL更新,看是如何使得GitHub运行得更畅顺的. 任务简述 自去年开始,我们陆续地把GitHub主体架构迁移到新的数据中心,与之配套的是世界级的硬件和网络环境.我们十分希望这次升迁对后端系统基石MySQL的性能也有所提高.不过在一个新环境重新建立一个新的服务器集群和硬件平台,并不是件轻易的事情,我

    数据库技术April 25

  • 改善MySQL上16进制标识符性能的5种方法

    前言: 原文地址:5 ways to make hexadecimal identifiers perform better on MySQL,作者是<High Performance MySQL, Second Edition.>的主要作者.这里是原文的节译. 在我们的业务中,经常会用md5()或者uuid()作为作为数据的标识,比如B2C网站,经常会有一些电子优惠券,常用就是通过md5()获得一个32位字符串,给字符串建立索引,然后用户输入优惠券代码之后系统查出此优惠券对应的折扣率:sel

    数据库技术April 25

  • 一个优化my.cnf 的脚本

    一个由MySQL职员写的优化脚本,可根据现有配置,系统配置,MySQL的运行情况给出优化建议. 官方地址:http://www.day32.com/MySQL/ 安装和运行: 通过SSH执行下列语句: 1. wget http://www.day32.com/MySQL/tuning-primer.sh 2. chmod 755 tuning-primer.sh 3. sh tuning-primer.sh 然后就可以看到结果了,根据建议就可以优化MySQL数据库的配置了. 本文来自:http:

    数据库技术April 24

  • MySQL新建用户.库.授权

    1.新建用户 ? # 四号程序员 http://www.coder4.com 1 2 3 4 #其中HOST可以用%表示所有主机 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; 2.删除用户 ? # 四号程序员 http://www.coder4.com 1 2 USE mysql; DELETE FROM user WHERE User="username"; 3.新建库 ? # 四号

    数据库技术April 23

  • 关于MySql的配置文件my.cnf的说明

    mysql的配置文件是/etc/my.cnf,通过修改它来配置mysql. /etc/my.cnf来自以下文件: 如果你的内存≤64M,则复制/usr/local/share/mysql/my-small.cnf为/etc/my.cnf # This is for a system with little memory (<= 64M) where MySQL is only used # from time to time and it"s important that the mysq

    数据库技术April 22

  • 快捷启动.停止.重启.杀死指定端口MySQL进程的脚本

    写了一个shell脚本,可以在同一台Linux服务器的不同端口,运行多个MySQL服务的情况下,快捷启动.停止.重启.杀死指定端口的MySQL进程. vi /usr/local/bin/mysql.sh 输入以下内容(因各服务器的MySQL配置不同,可能需要修改的部分已用红色标注): #!/bin/sh mysql_port=$2 mysql_username="root" mysql_password="123456" function_start_mysql()

    数据库技术April 21

  • 获取SqlServer2005表结构(字段,主键,外键,递增,描述)
    获取SqlServer2005表结构(字段,主键,外键,递增,描述)

    1.获取表的基本字段属性 --获取SqlServer中表结构 SELECT syscolumns.name,systypes.name,syscolumns.isnullable, syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id("你的表名") 运行效果 2.如果还想要获取字段的描述信息则 -

    数据库技术April 20

  • Mongodb采用$in方式提升操作效率

    ongodb操作里许多人喜欢采用PHP的循环操作,这种方式效率非常低下,可以优化. 1. 查询: 有两种方式,在PHP里循环查询和使用$in的方式.做一个查询1000条数据的示例如下: [php]view plaincopy //循环查询 for($i=0;$i<count($array);$i++){ $item=$collection->findOne(array("_id"=>newMongoId($array[$i]))); echo$item["p

    数据库技术April 20

  • 12款免费与开源的NoSQL数据库介绍

    Naresh Kumar是位软件工程师与热情的博主,对于编程与新事物拥有极大的兴趣,非常乐于与其他开发者和程序员分享技术上的研究成果.近日,Naresh撰文谈到了12款知名的免费.开源NoSQL数据库,并对这些数据库的特点进行了分析. 现在,NoSQL数据库变得越来越流行,我在这里总结出了一些非常棒的.免费且开源的NoSQL数据库.在这些数据库中,MongoDB独占鳌头,拥有相当大的使用量.这些免费且开源的NoSQL数据库具有很好的可伸缩性与灵活性,非常适合于大数据存储与处理.相较于传统的关系型

    数据库技术April 19

  • skip-external-locking ? MySQL性能参数详解

    MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参数,即"跳过外部锁定".根据MySQL开发网站的官方解释,External-locking用于多进程条件下为MyISAM数据表进行锁定. 如果你有多台服务器使用同一个数据库目录(不建议),那么每台服务器都必须开启external locking: 参数解释 当外部锁定(external-locking)起作用时,每个进程若要访问数据表,则必须等待之前的进程完成操作并解除锁定.由于服务器访问数据表

    数据库技术April 19

  • MySQL 5.7: 短连接优化
    MySQL 5.7: 短连接优化

    尽管比较罕见,但某些场景还是存在着短连接,即用户执行完请求后,很快断开会话.伴随着频繁创建/销毁连接的过程. 官方博客: http://mysqlserverteam.com/improving-connectdisconnect-performance/ 对应worklog:http://dev.mysql.com/worklog/task/?id=6606 在之前的版本中, THD/NET/VIO总是由接受连接请求的线程来完成,如果是长连接这没有问题,但如果都是短连接的话,就会应先main线

    数据库技术April 18

  • Cassandra配置cassanra.yaml详解

    这篇博客,对Cassandra配置-cassandra.yaml的配置项进行重点解释. Option Default Value authenticator org.apache.cassandra.auth.AllowAllAuthenticator authority org.apache.cassandra.auth.AllowAllAuthority broadcast_address same as listen_address cluster_name Test Cluster(这个

    数据库技术April 18

  • 大数据里的小利器--Strata 2012大会见闻

    如今,90%的数据分析师都在谈大数据,在大数据的背景之下,数据分析师收集数据的边界在哪里?又该如何运用数据呢?作者在美国参加Strata 2012大会期间,跟很多数据中人交流,其中前LinkedIn首席科学家DJ Patil给他的印象最深. 对话:先有需求,后有数据 车品觉:我有一个问题一直很困惑,现在的企业获取数据很容易,并且数据的增长速度非常之快,那么对于公司来说,到底要收集什么数据呢?收集多少数据?收集数据的边界在哪里? Patil:过去收集数据很难,而现在获取数据资源比较容易.如果收集数

    数据库技术April 14

  • 阿里双十一数据库技术
    阿里双十一数据库技术

    真的很抱歉,我的博客已经很久没有更新了,因为花了太多的时间在微博和微信上,当然最主要的原因还是工作实在太忙了,仅剩的那点业余时间都用来陪娃了. 从2012年开始,工作重心转移到了淘宝和天猫,我的技术方向也发生了改变,2012年和2013年,经历了两次双十一,在这个过程中学到了很多东西.尤其是2013年的双十一,系统准备的非常充分,技术上有很多创新,团队也得到了成长. 这篇文章是我为<程序员>杂志双十一特刊写的一篇文章,介绍了阿里数据库的核心技术 前言 大家都知道,双十一的零点高峰给系统带来的压

    数据库技术April 12

  • Oracle语句优化规则汇总(1)
    Oracle语句优化规则汇总(1)

    Oracle sql 性能优化调整 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖. 为了使用基于成本的优化器(CBO, Cost-Based Opti

    数据库技术April 12

  • MySQL整型数据溢出的处理策略

    今天接到一个朋友电话说是觉的数据库被别人更改了,出现数据不对的问题 .经过很久的排查是数据类型溢出了(发生问题的版本是MySQL 5.1).后来通过给朋友那边把MySQL 5.1升级到MySQL 5.5去解决这个问题. 这也让我有兴趣去了解一下MySQL不同版本数据类型溢出的处理机制. 先看一下MySQL支持的整型数及大小,存储空间: Type Storage Minimum Value Maximum Value 存储大小 (Bytes) (Signed/Unsigned) (Signed/U

    数据库技术April 12

  • DB2 V9自动自调整内存详解
    DB2 V9自动自调整内存详解

    IBM的DB2 V9 引入了自动自调整内存管理,自适应的自调整内存功能通过自动设置内存配置参数值以及调整缓冲池大小来简化内存配置任务.启用此功能后,内存调整器就会在几个内存使用者(包括:排序.程序包高速缓存.锁定列表和缓冲池)之间动态地分配可用内存资源,从而简化了内存配置参数调整的工作量.本文重点介绍在DB2® V9中如何使用自动自调整内存,包括如何启用自调整内存,禁用自调整内存以及自调整内存相关的几个内存配置参数等. 简介 在DB2 V9之前,数据库的内存配置参数和缓冲池都是由管理员手工设置的

    数据库技术April 11

  • 细化解析:Oracle使用的hints调整机制

    10g数据库介绍:可以使用更多新的optimizer hints来控制优化行为.现在让我们快速解析一下这些强大的新hints: spread_min_analysis 使用这一hint,你可以忽略一些关于如详细的关系依赖图分析等电子表格的编译时间优化规则.其他的一些优化,如创建过滤以有选择性的定位电子表格访问结构并限制修订规则等,得到了继续使用. 由于在规则数非常大的情况下,电子表格分析会很长.这一提示可以帮助我们减少由此产生的数以百小时计的编译时间. 例: SELECT /*+ SPREAD_

    数据库技术April 11

  • 收集统计信息degree不生效的问题

    在10.2以上的版本,收集统计信息,如使用dbms_stats.gather_table_stats,还是在ebs中调用fnd_stats.GATHER_TABLE_STATS,有的时候虽然用了degree的参数,如degree=8,但是会发现仍然不使用并行.在10046的trace中,我们可以看到: /* SQL Analyze(0) */ select /*+ full(t) no_parallel(t) no_parallel_index(t) dbms_stats cursor_shar

    数据库技术April 11

  • SQL Server 2008中的新日期数据类型
    SQL Server 2008中的新日期数据类型

    摘要 你是否曾经想在数据库中存储一个日期而没有时间部分,或者想存储一个时间值希望有更高的精度?在SQL Server 2008的介绍中,微软介绍了一些新的日期数据类允许你只存储一个日期.更高精度的时间值等.这些新的数据类型为你存储日期和时间相关信息提供了一些附加选项.在本篇文章中,我将介绍这些新的日期数据类型以及与旧版本的SQL Server中现有的数据类型进行比较. 回顾旧的日期数据类型 在我们开始讨论SQL Server 2008中新的日期数据类型之前,先来回顾一下SQL Server 20

    数据库技术April 9

  • 关于InnoDB表的page利用率和optimize table
    关于InnoDB表的page利用率和optimize table

    上一篇我们介绍了ibd_used这个工具,我们用来量化看表数据文件的page使用率.这里用来说明optimize table这个命令的问题和优化. 实例准备 建一个这样的表 CREATE TABLE `tb` ( `seq_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `a` varchar(32) DEFAULT NULL, `b` varchar(32) DEFAULT NULL, `c` varchar(32) DEFAULT NULL,

    数据库技术April 8

  • oracle导入大数据.数据库之间迁移数据简单方法
    oracle导入大数据.数据库之间迁移数据简单方法

    oracle导入数据的方式比较多:主要介绍两种十分简单的方式(通过已存在的工具完成导入). 一.通过pl/sql developer导入.csv数据. 普通的pc机,这种方式一般只能导入20+w的数据,再多就有卡死的风险. 工具->工具导入器->打开,选择.csv文件导入:如下截图: 可以修改"每次提交"的数目,需要注意源数据与表字段的映射关系,然后点击"导入",即可. 二.如果量达到100w级以上,建议用sql语句导入或其它方式. 在达到100w+后,

    数据库技术April 6

  • Microsoft SQL Server 2008 正式发布
    Microsoft SQL Server 2008 正式发布

    在Windows Server 2008.Visual Studio 2008面世半年多之后,微软新一代服务器产品阵线的另一成员SQL Server 2008直到今天才终于正式出炉. SQL Server 2008可为关键业务应用提供可信赖的.高效的.智能的平台,支持基于策略的管理.审核.大规模数据仓库.空间数据.高级报告与分析服务等新特性. 微软表示,已经有45多万个客户和合作伙伴下载试用了SQL Server 2008 CTP社区预览版,至少75个大型应用程序也已投入实用,还有近1000家独

    数据库技术April 4

  • 存储过程编写经验和优化措施

    1.开发人员如果用到其他库的Table或View,务必在当前库中建立View来实现跨库操作,最好不要直接使用"databse.dbo.table_name",因为sp_depends不能显示出该SP所使用的跨库table或view,不方便校验. 2.开发人员在提交SP前,必须已经使用set showplan on分析过查询计划,做过自身的查询优化检查. 3.高程序运行效率,优化应用程序,在SP编写过程中应该注意以下几点: a) SQL的使用规范: i. 尽量避免大事务操作,慎用hold

    数据库技术April 2

  • HBase ORM SimpleHBase设计
    HBase ORM SimpleHBase设计

    目前企业软件开发占据主流的开发模式为面向对象模式.无论是建立在集合论之上的传统关系型数据库,还是以CAP定理/Hadoop/BigTable为基石的HBase,都面临以下的基本问题: 如何保存对象到数据存储? 如何从数据存储获取对象? 如何更新数据存储中的现有数据?数据存储的类型系统和开发语言(Java)的类型系统之间如何相互转换? 简而言之,数据存储如何提供增.删.改.查的服务能力,应用如何方便的使用该能力.关系型数据库给出的答案为SQL,JDBC和各种ORM框架(典型例子为Hibernate

    数据库技术April 2

  • 随笔:修改 SVN 账户密码的方法
    随笔:修改 SVN 账户密码的方法

    记是记不住 的,即便是每天都在用的东西,也有貌似熟悉其实很陌生的时候,或者说根本就是不熟悉.于是需要拿出来经常翻翻,比如我们的SVN账户配置,很简单的一个 case,你可能是svn使用高手,但不一定记得怎么去修改SVN下的账号设置.一般我们都是长期使用自己的svn账号,但是由于需要或者某些情况,需要 我们切换svn账号,那就有点麻烦了. 由于在svn 的界面中并没有为我们提供直接更换用户名密码的地方,所以一旦我们需要更换用户名的就需要自己想一些办法. Case1: 在Eclipse 使用SVN

    数据库技术April 2

  • 又拍网架构中的分库设计
    又拍网架构中的分库设计

    又拍网是一个照片分享社区,从2005年6月至今积累了260万用户,1.1亿张照片,目前的日访问量为200多万.5年的发展历程里经历过许多起伏,也积累了一些经验,在这篇文章里,我要介绍一些我们在技术上的积累. 又拍网和大多数Web2.0站点一样,构建于大量开源软件之上,包括MySQL.PHP.nginx.Python.memcached.redis.Solr.Hadoop和RabbitMQ等等.又拍网的服务器端开发语言主要是PHP和Python,其中PHP用于编写Web逻辑(通过HTTP和用户直接

    数据库技术April 2

  • mysql主从日志的定期清理

    mysql主从的binlog定时删除是很重要的,一般是通过expire_logs_days = 10来设置binlog保留的天数(mysql5.0一下版本不支持),但有时这还不够,假如有几天的日志量非常大,硬盘可能会满,所以不但要设置保留的天数,还要监控硬盘的空间使用情况.写了一个脚本,适合各个版本的mysql,保留3天的日志,当存放日志的硬盘使用率超过80%,则保留2天,但至少会保留一天的binlog日志文件. #!/bin/envpython #-*-coding:utf-8-*- ####

    数据库技术March 31

  • eBay 的 Personalization Platform 采用 MySQL
    eBay 的 Personalization Platform 采用 MySQL

    过去写过很多关于 eBay 数据平台架构的帖子,过去eBay 的信息架构里 DB 都是采用 Oracle 的,大多数 DBA 朋友也都知道 eBay 在 Oracle 方面的技术搞得非常好.这次的 The 2008 MySQL Conference & Expo 披露出来的信息,eBay 在 MySQL 上做了很大胆的尝试,eBay Personalization Platform 就是用 MySQL 打造的.Sun 当然不会放弃这个大好的宣传机会(这两家在技术上的合作一向也比较多),所以年度最

    数据库技术March 31

  • Oracle发布2013 JVM语言峰会的视频和幻灯片

    Oracle发布了2013 JVM语言峰会的视频和幻灯片,该会议是在今年7月份举行的.JVM语言峰会为研究人员和使用JVM开发替代语言的语言设计人员或者JVM设计人员报告如何利用平台提供了机会. 自第一次发布以来,Java平台已经极大地受益于标准JVM规范.该规范引入了字节码和兼容性层,允许程序在任何体系结构上运行.尽管最初解释执行,但JVM很早就已经有一个JIT优化器,用于提升执行速度和整个平台的性能.目前,JVM是一个能使Java应用程序执行速度接近于C的强力工具. 按照一直以来的规定,字节

    数据库技术March 29

  • Innodb 索引结构了解 - Innodb Index Structure
    Innodb 索引结构了解 - Innodb Index Structure

    Innodb 作为 MySQL 中使用最为广泛的 事务型存储引擎,不仅在事务实现数据版本控制方面和其他存储引擎有一定的区别,其数据结构也是以非常有特点的方式存储的. 每个Innodb表的数据其实可以说就是以一个树型(B-Tree)结构存储的,表的数据和主键(Primary Key)共同组成了一个索引结构,也就是我们常说的Innodb的Clustered Primary Key.在这个Clustered Primary Key中,Leaf Nodes其实就是实际的表记录,我们常规理解上的索引信息全

    数据库技术March 28

  • 解决SQL Server数据库的"User, group, or role already exists in the current database"问题

    问题场景 在SQL Server数据库迁移时,在另外一台服务器上恢复数据库备份文件之后,需要重新创建之前数据库上的用户帐户.在创建登录用户时,需要在User Mapping中给该用户针对具体的数据库进行授权,由于恢复出来的数据库中存在同名的用户帐户,创建时会出现"User, group, or role already exists in the current database"的错误提示.详细错误信息如下: TITLE: Microsoft SQL Server Managemen

    数据库技术March 27

  • IBM携DB2 9开启混合型数据库管理系统新纪元

    新技术带来的新麻烦 XML(Extensible Markup Language)技术作为一种自我描述的数据结构,具有极大的灵活性,凭借其可扩展.平台无关和易于交换等特性获得各方面的一致认可.随着业务和IT技术的进化,越来越多的公司开始广泛采用XML技术.同时,为了实现在不同的系统和应用程序之间交换数据以适应业务环境的快速变化,大量的企业开始建立SOA(Service Oriented Architecture,面向服务的架构),而XML正是SOA得以建立的基础.因此,几乎所有的著名IT企业都在

    数据库技术March 26

  • Redis的Python客户端redis-py

    1. 安装 1. redis-py a. 使用easy_install sudoeasy_installredis b. 源码安装 gitclonehttps://github.com/andymccurdy/redis-py.git cdredis-py pythonsetup.pyinstall 2. Parser安装 Parser可以控制如何解析redis响应的内容.redis-py包含两个Parser类,PythonParser和HiredisParser.默认,如果已经安装了hired

    数据库技术March 25

  • SNS用户数据表设计方案 以Facebook和UcHome数据表设计分析为例
    SNS用户数据表设计方案 以Facebook和UcHome数据表设计分析为例

    来源:http://www.biuuu.com/?p=315 SNS与博客最大的区别在于关注重点不同,后者以博客为平台,基于博客ID而产生的日志,话题,照片,群组,视频,分享,好友等等,而前者强者个人,基于人ID而与其相关的日志,话题,照片,群组,好友等等,虽然功能上差不多,但关注重点不同,因而对数据库的设计而言,user_id成为全部数据设计的核心,根据我对facebook,ucHome两个数据表结构分析来看,基本上所有的功能都是通过user_id引导,从而延伸到相关的组件,如日志,照片,群组

    数据库技术March 25