摘要: 一 MySQL概述 MySQL是一个很受欢迎的开源数据库,当我从Oracle转来做MySQL的时候,感觉最深刻的一点就是,这家伙居然是Server和Storage分开的!而且更不能忍的是,它竟然是插件式存储引擎,每一种引擎的特点是很不相同的,当时我感觉这东西也太难学了吧,我要学多少个引擎啊。后来我发 阅读全文
posted @ 2016-02-25 22:05 wingsless 阅读(967) 评论(0) 推荐(0) 编辑
摘要: 最近一直都在搞新员工的培训材料,MySQL的培训PPT我居然写了100多页,我都佩服我自己的毅力了。不如现在把这些总结一下,慢慢写到博客里,供入门者参考。 一 关系型数据库 关系型数据库的理论提出于上世纪七十年代,由IBM的研究员E.F.Codd的论文提出。 关系型数据库的理论基础可以参考王珊和萨师 阅读全文
posted @ 2016-02-24 20:29 wingsless 阅读(1641) 评论(1) 推荐(1) 编辑
摘要: 之前写过一篇博文,《不好的MySQL过程编写习惯》(http://www.cnblogs.com/wingsless/p/5041838.html)。这篇博文里强调了不要循环的提交事务,尽量将可以放在一起的SQL同一个事务提交,会快很多很多。博文中提到了redo的问题,因此,结合最近编写新员工培训材 阅读全文
posted @ 2016-02-20 12:37 wingsless 阅读(1852) 评论(0) 推荐(0) 编辑
摘要: 最近一段时间在准备新员工培训的材料,本来打算介绍介绍概念就OK的,但是既然写了事务的章节,就特别想介绍一下锁,介绍了锁,就忍不住想介绍一下Next-Key Lock。 大家知道,标准的事务隔离级别有READ UNCOMMITTED,READ COMMITTED,REPEATED READ和SERIA 阅读全文
posted @ 2016-02-20 12:03 wingsless 阅读(2829) 评论(1) 推荐(0) 编辑
摘要: 刚才为了测试一个东西,写了个存储过程: delimiter $$drop procedure if exists sp_test$$create procedure sp_test()begin declare v_cnt int; set v_cnt = 0; while v_cnt ... 阅读全文
posted @ 2015-12-12 21:09 wingsless 阅读(1153) 评论(0) 推荐(0) 编辑
摘要: MySQL InnoDB表是索引组织表这一点应该是每一个学习MySQL的人都会首先学到的知识,这代表这表中的数据是按照主键顺序存储,也就是说BTree的叶子节点存储了所有该行的数据。 我最开始是搞Oracle的,头一次接触MySQL的时候,默认引擎还是MyISAM。当时我看到公司建立的所有的I... 阅读全文
posted @ 2015-12-12 12:17 wingsless 阅读(6751) 评论(1) 推荐(1) 编辑
摘要: 昨天我写了有关MySQL的loose index scan的相关博文(http://www.cnblogs.com/wingsless/p/5037625.html),后来我发现上次提到的那个优化方法中主要的目的就是实现loose index scan,而在执行计划的层面上看,Extra信息中应... 阅读全文
posted @ 2015-12-12 00:43 wingsless 阅读(28157) 评论(3) 推荐(1) 编辑
摘要: 众所周知,InnoDB采用IOT(index organization table)即所谓的索引组织表,而叶子节点也就存放了所有的数据,这就意味着,数据总是按照某种顺序存储的。所以问题来了,如果是这样一个语句,执行起来应该是怎么样的呢?语句如下: select count(distinct a)... 阅读全文
posted @ 2015-12-10 22:44 wingsless 阅读(2771) 评论(0) 推荐(1) 编辑
摘要: 不知不觉的玩了两年多的MySQL,发现很多人都说MySQL对比Oracle来说,优化器做的比较差,其实某种程度上来说确实是这样,但是毕竟MySQL才到5.7版本,Oracle都已经发展到12c了,今天我就看了看MySQL的连接算法,嗯,现在来说还是不支持Hash Join,只有Nested-Loop 阅读全文
posted @ 2015-12-09 22:51 wingsless 阅读(11098) 评论(0) 推荐(0) 编辑
摘要: MySQL环境: master:192.168.202.129:3306 slave:192.168.202.129:3307,192.168.202.129:3307,192.168.202.130:3306,192.168.202.130:3307,192.168.202.130:330... 阅读全文
posted @ 2014-10-18 14:39 wingsless 阅读(17351) 评论(0) 推荐(0) 编辑
摘要: 单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我。下面就说说步骤。 承上文http://www.cnblogs.com/wingsless/p/4002806.html,我已经安装好了MySQL... 阅读全文
posted @ 2014-10-11 22:27 wingsless 阅读(11742) 评论(1) 推荐(1) 编辑
摘要: 最近就想搞搞hadoop,然后装个MySQL,测试一下那个sqoop。 MySQL这种东西,既然是开放源码的,那就源码安装吧。 下面是我的测试环境说明: VMware10+Ubuntu14.04 Kylin 下面开始一步一步写(非特别注明,都是用root用户执行): 1 下载Maria... 阅读全文
posted @ 2014-09-30 23:18 wingsless 阅读(7536) 评论(0) 推荐(1) 编辑
摘要: 因为换了工作正在学习使用MySQL,今天领导提出了一个问题,如下: X列是累加值,A列是每日新增值,那么X2应该是X1+A2,而且存储过程里也是这样计算的。可是奇怪的是X2的值却总是和正确值(2396116766)有一定的差异。于是我手工进行了update,但是没有办法,数据永远是:2396116736。在我百思不得其解的时候我决定看看这个表怎么建立的,我发现这个字段是float(20,4),参阅《MySQL技术内幕:SQL编程》和《高性能MySql》发现,float字段是不精确的。于是把这个字段改成了decimal,这样就正确了。 我参阅了很多网上的资料,很多资料都有过实验,有些人说超过.. 阅读全文
posted @ 2013-11-15 21:31 wingsless 阅读(7329) 评论(2) 推荐(0) 编辑
摘要: Kettle是Pentaho的一个组件,主要用于数据库间的数据迁移,到我用过的4.2版,还不支持noSQL,不知道4.4是不是支持了。 Kettle自己有三个主要组件:Spoon,Kitchen,Pan。其中Spoon是一个图形化的界面,用于windows的时候,先设置环境变量:pentaho_java_home,例如:C:\Program Files\Java\jdk1.7.0_25,其实就是你的java安装目录,1.6以上即可。windows下双击Spoon.bat就可以了,界面如下: 这里我建立了资源库,其实可以用文件形式存储,存储的结构都是xml,但是我还是觉得建立一个资源库... 阅读全文
posted @ 2013-07-13 00:37 wingsless 阅读(84866) 评论(4) 推荐(6) 编辑
摘要: 最近建立数据仓库的过程中遇到了若干问题,现总结如下。 1 mysql到oracle的迁移。这是个复杂的问题,因为我们没有计划投资购买datastage这样牛逼的ETL工具,因此最开始我决定自己写代码,将mysql的数据导入文本中,再利用sqlldr将数据导入到oracle中。这个过程说起来并不是很复杂,但是实际操作起来比较烦,因为我遇到了如下的问题: 1.1 NULL值。mysql导出文件的时候null值会被处理为“\N”,这样在入库的时候oracle会直接将它当做一个字符来处理,因此就出现了这样的困扰,我也许还需要在数据导入成功以后进行一次update操作,四五万条数据我也就认了,可... 阅读全文
posted @ 2013-07-12 22:52 wingsless 阅读(1570) 评论(1) 推荐(1) 编辑