随笔分类 -  数据库 / MySQL

摘要: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 阅读(28152) 评论(3) 推荐(1) 编辑
摘要:众所周知,InnoDB采用IOT(index organization table)即所谓的索引组织表,而叶子节点也就存放了所有的数据,这就意味着,数据总是按照某种顺序存储的。所以问题来了,如果是这样一个语句,执行起来应该是怎么样的呢?语句如下: select count(distinct a)... 阅读全文
posted @ 2015-12-10 22:44 wingsless 阅读(2769) 评论(0) 推荐(1) 编辑
摘要:不知不觉的玩了两年多的MySQL,发现很多人都说MySQL对比Oracle来说,优化器做的比较差,其实某种程度上来说确实是这样,但是毕竟MySQL才到5.7版本,Oracle都已经发展到12c了,今天我就看了看MySQL的连接算法,嗯,现在来说还是不支持Hash Join,只有Nested-Loop 阅读全文
posted @ 2015-12-09 22:51 wingsless 阅读(11094) 评论(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 阅读(17348) 评论(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 阅读(7328) 评论(2) 推荐(0) 编辑
摘要:最近建立数据仓库的过程中遇到了若干问题,现总结如下。 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) 编辑
摘要:我希望用程序生成一些测试数据,测试一下开源数据库中哪个比较适合我们的数据仓库项目,于是有了这篇随笔。 其实测试数据可以用过程生成,但是我想学学java因此决定用程序实现。而且我先在把windows这个让我一打开电脑就想娱乐的系统卸载了,现在纯Ubuntu。 先记录下Java的配置: 首先需要下载Java,这是一个很简单的过程,链接在这里:http://www.oracle.com/technetwork/java/javase/downloads/index.html。我的是64位系统,因此选择了64位的gz包。下载好以后随便解压到哪个目录底下都是可以的。然后只需要配置这么几个环境变量... 阅读全文
posted @ 2013-06-01 00:42 wingsless 阅读(1181) 评论(0) 推荐(0) 编辑
摘要:换了新的单位我现在也从oracle从业者变成了mysql从业者,当然放弃oracle的原因主要是因为在新单位可以尽量少的写代码了。 现在我面对的是一个数据仓库,和上一家公司一样,数据仓库最让我们技术人员受不鸟的是数据量太大,存储,I/O,效率都让人想死,每次有些统计分析要求,在清单表里查询简直是让我等到花儿都谢了。那么会有什么好的办法呢?我想这个问题提出来会有很多人告诉我用hadoop。是的,hadoop是现在最流行的大数据解决方案,但是hadoop有一个问题,就是我们小组现在没有人会,还需要很长的时间去学习,去搭建,而且我也不愿意轻易放弃传统的关系型数据库,说真的我连Mango都很抵制。 . 阅读全文
posted @ 2013-05-25 19:35 wingsless 阅读(10378) 评论(0) 推荐(0) 编辑