最近一直都在搞新员工的培训材料,MySQL的培训PPT我居然写了100多页,我都佩服我自己的毅力了。不如现在把这些总结一下,慢慢写到博客里,供入门者参考。

一 关系型数据库

关系型数据库的理论提出于上世纪七十年代,由IBM的研究员E.F.Codd的论文提出。

关系型数据库的理论基础可以参考王珊和萨师煊编著的经典教材《数据库系统概论》。我就不在这里写了,这些理论性太强,作为快速入门的教程也不应该说这些,但是这些理论就像是武功里的易筋经一样,练了以后什么功夫都学得快。

二 数据库的基本概念

以前玩儿Oracle的时候加了一个群,发现很多人写了好久的PL/SQL,但是还是搞不明白什么叫数据库,什么叫做实例。我觉得,虽然不知道这些还是可以写PL/SQL,但是如果想成为一个DBA,基本概念还是一定要清楚的,就像是练功还是要先扎马步一样,下盘不稳总是容易倒下嘛。

数据库(database):指的是文件系统上的一组文件,在innoDB中表现为后缀为idb的文件。

实例(instance):指的是操作系统上的一组进程/线程和内存的集合。如果在MySQL服务器上执行ps -ef | grep mysql,就能看见MySQL的进程了。

简单地说,数据库指的是文件,实例指的是进程/线程和内存。

平时我们说的数据库,很多的时候指的是关系型数据库管理系统(RDBMS),这些概念在严谨的文档中是要严格区分的,但是在平时的交流中,基本上大家约定俗成的说法是没有问题的。

至于数据库的其他一些概念:表,行,列,视图和索引等等,这些以后慢慢讲吧。

三 MySQL数据库概述

MySQL最开始是创始人Monty觉得别人的数据库不好使,自己写出来服务自己的(Linux是当年Linus觉得Minix只能用在教学,为了更好地学操作系统写出来的),不得不说这些人牛。

后来,他成立了MySQL AB公司,开发用于商用的MySQL。之后公司被大名鼎鼎的Sun收购,在Sun时期,MySQL推出了5.1版本,这个版本我用了好久,堪称难用,尤其是和后来的5.5比起来,简直是太难用了。

2009年,MySQL随着Sun一起被Oracle收购,随后Oracle推出了5.5版本,我个人觉得这个版本真的是里程碑版本了,当年我们从5.1升级到5.5的时候,性能好的真的是让我都快流泪了,尤其是比5.1完善的多的分区表,简直是当年我做数据仓库的福音。

后来,我们迎来了5.6和5.7版本, 这些版本大幅提高了并发能力和复制的性能,尤其是5.7的并行复制功能,理论上解决了一直存在的复制延迟问题。我确实感觉到,Oracle公司在数据库领域的领先确实不是其他公司可以比拟的。

当然,开源软件,尤其是好的开源软件总是有分支的。MySQL最大的分支就是Percona Server和MariaDB了。Percona Server专注于性能的提升,其推出的XtraDB引擎就是innoDB的加强版;MariaDB则会引进更多的新特性,尤其是MariaDB率先推出的并行复制功能,着实让官方MySQL用户眼红。

四 Linux还是Windows?

我现在就是用Windows来写这篇博文的,但是我还是觉得Linux在服务器领域远远好于Windows。

其实我最近和很多网友交流过,发现很多人学习MySQL的时候还是首先会选择Windows,在我推荐使用Linux时很多人都会抱怨Linux的GUI太差了,安装软件也非常复杂,实在是不想用。实际上从入门学习的角度上说,用Windows也是可以的,不过很多DBA每天不止是写写SQL,还要搞很多操作系统和网络上的事情,所以还是直接用Linux比较好。我最开始学习Linux的时候也天天骂为什么不能把操作系统做的好用一点,不过后来熟悉了觉得挺好用的,有时候写个Shell还是挺高效的。

学习Linux可以从Ubuntu入手,这个版本的GUI做的很不错,现在很多公司的系统采用了RHEL或者CentOS,学习的时候也可以看看,和Ubuntu大同小异。推荐一本书:《鸟哥的Linux私房菜》,只看第一卷就可以了,基本上学会了就可以把Linux作为日常工作系统了。

我以前看到过一些资料,说是MySQL在Linux上的性能更好,Windows的版本也是后来某个版本才开始优化了,不知道这个说法是否成立,我姑且信之。不过有个点可以作为参考,就是Percona公司的Percona Server就根本没有Windows版本。

所以最好还是从开始学习就用Linux吧,毕竟一个DBA得杂学操作系统和网络。

--------------------------------------------------------------------------------

今天写了一些基本概念和MySQL的历史,这些我们也是需要理解和知道的,对一个DBA来说这些知识只有好处没有坏处。今天躺着写的,没有鼠标不是很方便,所以写的比较简略。

MySQL入门(一)的更多相关文章

  1. 21分钟 MySQL 入门教程(转载!!!)

    21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...

  2. MySQL入门02-MySQL二进制版本快速部署

    在上篇文章 MySQL入门01-MySQL源码安装 中,我们介绍了MySQL源码安装的方法. 源码安装虽然有着更加灵活和更加优化等诸多优势.但源码编译安装部署的过程相对复杂,而且整个过程所花费的时间很 ...

  3. MYSQL入门全套(第三部)

    MYSQL入门全套(第一部) MYSQL入门全套(第二部) 索引简介 索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构.如果想按特定职员的姓来查找 ...

  4. MySQL入门(三)

    写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想 ...

  5. MySQL入门笔记

    MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: ·          rpm包形式 ·          通用二进制 ...

  6. MySQL入门转载

    21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html 目录 一.MySQL的相关概念介绍 二.Wi ...

  7. mysql 入门 基本命令

    MYSQL入门学习之一:基本操作  1.登录数据库    www.2cto.com     命令:mysql -u username –p (mysql -h主机地址 -u用户名 -p用户密码)   ...

  8. MySQL入门笔记(一)

    一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_nam ...

  9. MySQL入门(上)

    1 课程回顾 自定义标签&编码实战 1)自定义标签步骤: 1.1 编写标签处理器类,继承SimpleTagSupport类,覆盖doTag方法 1.2 在WEB-INF目录下建立tld文件,在 ...

  10. 第二章 MySQL入门篇

    第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...

随机推荐

  1. Spring常用注解汇总

    本文汇总了Spring的常用注解,以方便大家查询和使用,具体如下: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:component- ...

  2. idea配置maven并添加镜像配置

    1.打开maven存放文件夹找到 conf ->settings.xml 找到<mirrors>节点把下面内容写入节点内 配置为阿里云的镜像 <mirror> <i ...

  3. jQuery实现发送短信验证码后60秒倒计时

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  4. python补充最常见的内置函数

    最常见的内置函数是: print("Hello World!") 数学运算 abs(-5)                         # 取绝对值,也就是5 round(2. ...

  5. ViewHolder被设计成静态内部类的作用

    当你的内部类不需要依赖于外界的属性或方法等,而又想提供给外界使用,可以采取静态内部类的方式来写 其中static的作用是可以提供给外界调用,比如说类名.内部类这种方式 而ViewHolder的实际是为 ...

  6. linux常用命令之文件权限

    CHGRP chgrp – change group ownership,改变组别的所有权 用法 chgrp 组别名 文件\目录名 选项 -R  (recursive)递归改变,将目录下所有的文件和目 ...

  7. 用T4 Template生成代码

    1 T4语法 T4的语法与ASP.NET的方式比较类似.主要包括指令.文本块.控制块. 1.1    指令 指令主要包括template, output, assembly, import, incl ...

  8. Windows 安装 GTK+ 图文说明

    首先去官方下载: //官方网站 http://www.gtk.org/download/index.php //下载链接 http://win32builder.gnome.org/gtk+-bund ...

  9. html5标签的改变

    1.新的文档类型声明 浏览器解析html模式是有两种模式,按照各自浏览器的定义渲染的页面叫“怪异模式”,而按照w3c组织统一的标准渲染叫“标准模式”.一般都是使用标准模式来保持网页兼容性,区分这两种模 ...

  10. 最简单的tab切换

    JS: $(".con").eq(0).show();    $(".btn span").click(function(){        var num = ...