• 青蛙学Linux—MySQL


    1、MySQL是什么?

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

    MySQL为什么会如此流行呢?因为它有以下特点:

    • 简单易用:MySQL的使用非常简单,稍微有IT技术背景的人员都可以参照文档安装和运行MySQL
    • 开源:开源意味着免费,这也是一开始很多人选择MySQL的原因
    • 支持多种存储引擎:MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE
    • 支持高可用架构:MySQL自身提供的replication(主从复制)功能可以实现MySQL数据的实时备份,结合其他高可用软件可以很方便的实现高可用

    MySQL官网:https://www.mysql.com

    2、基于MySQL的发行版

    目前流行的MySQL分支发行版有Percona Server和MariaDB。

    Percona Server

    Percona Server是由领先的MySQL咨询公司Percona发布的一款基于MySQL的关系型数据库,是一款独立的数据库产品,与MySQL完全兼容。在众多MySQL分支发行版中是最为接近官方MySQL Enterprise的版本。

    Percona Server使用自行开发的XtraDB引擎;Percona Server在可管理性和稳定性上较MySQL都有一定的提升;Percona Server还是开源和免费的软件,而官方的MySQL Enterprise则是收费版本。

    Percona公司还提供了其他诸如高可用、数据库管理和备份等解决方案,官网:https://www.percona.com

    MariaDB

    MariaDB由MySQL的创始人Michael Widenius主导开发。先前其曾将自己创建的公司MySQL AB出售给了SUN,随后SUN被Oracle收购,Michael Widenius不满于Oracle有将MySQL闭源的潜在风险所以开发了MariaDB。

    MariaDB当前主要由开源社区进行维护,采用GPL授权许可;MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品;在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。

    MariaDB官网:https://mariadb.org

    3、MySQL的存储引擎

    MySQL常用的存储引擎有MyISAM和InnoDB。

    在MySQL 5.5之前的版本,默认使用的是MyISAM引擎,而从MySQL 5.5开始,已将默认存储引擎从MyISAM改为InnoDB。

    两种存储引擎的大致区别在于:

    • InnoDB支持事务,而MyISAM不支持。事务是一种高级的数据处理方式,可以在一些增删改查出错时进行回滚操作以还原数据
    • MyISAM查询数据相对较快,适合大量的select操作,可以全文索引;InnoDB适合频繁修改以及安全性要求较高的应用
    • InnoDB支持外键,支持行级锁,MyISAM不支持
    • MyISAM索引和数据是分开的,且其索引是压缩的,缓存在内存的是索引,而不是数据;InnoDB缓存在内存的是数据,相对来说,服务器内存越大,InnoDB发挥的优势越大
    • InnoDB可支持大并发请求,适合大量insert、update操作

    3.1、InnoDB存储结构

    使用InnoDB存储引擎,MySQL会将以.frm结尾的表结构文件存放于数据存储目录下以数据库命名的目录中;而数据库中的数据、索引和元数据都会被存储在数据存储目录下的ibdata1文件中;在MySQL的数据存储目录下还存在名为ib_logfile0ib_logfile1的文件(文件大小可以设置,可设置镜像),这两个文件为事务日志(redo log),用于记录数据库操作的变化,用于事务的回滚操作,这两个文件的写入规则为:先写ib_logfile0,写满后写ib_logfile1,在ib_logfile1写满后再返回写ib_logfile0。

    3.2、MyISAM存储结构

    MyISAM引擎会将数据全部放置在MySQL数据存储目录中以数据库命名的目录下,名称以表名表示,通过后缀区分不同的文件:.frm为表结构文件;.myd为数据存储文件;.myi为索引文件

  • 相关阅读:
    大规模特征构建实践总结
    大数据分析在新型智慧能源建设中的应用
    非局部神经网络,打造未来神经网络基本组件
    异常处理机制
    myecplise debug时怎么看源码 和怎么导入项目中框架的源码
    mybatis 学习的总结
    oracle学习总结2(pl/sql 游标 异常的处理 存储过程和函数 包 触发器)
    Oracle学习的总结
    Oracle 11 g 2R安装以及sql Development
    SpringMVC源代码学习(六)HanderMapping详解
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/10322634.html
Copyright © 2020-2023  润新知