美文网首页
数据库概念

数据库概念

作者: 码而优则仕 | 来源:发表于2020-04-12 22:50 被阅读0次
      • 数据库和实例

        数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据库文件可以可以是frm,MYD,MYI,ibd结尾的文件。当使用NDB存储引擎时,数据库文件可能不是操作系统上的文件,而是存放在内存之中的文件。

        实例:MySQL数据库油后台线程以及一个共享内存区组成。共享内存区域可以被后台线程所共享。需要牢记的是数据库实例才是真正用于操作数据库文件的。

        数据库是文件集合,是依照某种数据模型组织起来并存放在二级存储器中的数据集合;而数据库实例是程序,是位于用户和操作系统之间的一层数据管理软件。用户对数据库数据的任何操作,包括数据库定义,数据查询,数据维护,数据库运行控制等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。

        实例和数据库的关系通常是一一对应的,但是在集群情况下可能存在一个数据库被多个数据库实例使用的情况。

        MySQL被设计为单进程,多线程的架构,也就是说MySQL数据库实例在系统上的表现就是一个进程。

        ps -ef | grep mysqld 命令可以查看数据进程

        当启动实例的时候MySQL数据库会去读取配置文件,根据配置文件的参数来启动数据库实例。如果MySQL没有找到用户自定义的配置文件就会使用编译时默认的参数设置启动实例

        mysql —help | grep my.cnf 可以查看数据库实例启动时会在哪些地方寻找配置文件信息

        配置文件中有个参数datadir,该参数指定数据库所在路径 在Linux操作系统下默认是/usr/local/mysql/data

        show variables like 'datadir'

        其实data目录存储的只是一个链接,该链接指向opt/mysql_data目录

      • MySQL体系结构

    数据库体系架构图.jpg
      1. MySQL由以下几部分组成:
    

    连接池组件,管理服务和工具组件,SQL接口组件,查询分析器组件,优化器组件,缓冲组件,插件式存储引擎,物理文件。

    MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持,这些标准和存储引擎本身无关,可能是每个数据库系统本身都必须的,如SQL分析器和优化器等,而存储引擎是底层物理结构的实现,每个存储引擎开发者可以按照自己的意愿来进行开发,需要特别注意的是存储引擎是基于表的,而不是数据库。

    1. MySQL存储引擎

      存储引擎的好处是,每个存储引擎都有各自的特点,能够根据具体的应用建立不同存储引擎表

      用户可以根据MySQL预定义的存储引擎接口来编写自己的存储引擎;所以存储引擎可以分为官方存储引擎和第三方存储引擎,InnoDB存储引擎最初就是第三方存储引擎。

      • InnoDB存储引擎:支持事务其设计目标主要是面向在线事务处理(OLTP)的应用。其特点是行锁设计,支持外键,非锁定读。InnoDB存储引擎将数据放在一个逻辑的表空间中—由InnoDB存储引擎自身进行管理;;注意从MySQL4.1开始,它可以将每个表单独存放在一个独立的ibd文件中;InnoDB使用多版本并发(MVCC)来获得高并发性,并且实现了SQL标准的4种隔离级别。同时使用一种被称为next-key的策略来避免幻读现象的产生;还提供插入缓存,二次写,自适应哈希索引,预读等高性能和高可用的功能。

        对于表中数据的存储,InnoDB存储引擎使用了聚集的方式,因此每张表都是按照主键的顺序进行存放,如果建表没有指定主键,将自动生成6字节的ROWID作为主键。

      • MyISAM存储引擎不支持事务,表锁设计,支持全文索引,主要面向OLAP应用,MyISAM缓冲池只缓存索引文件,而不是缓冲数据文件,MyISAM存储引擎表由MYD和MYI组成,MYD存放数据文件,MYI存放索引文件

        show engines 查看数据库支持的存储引擎及各个引擎特点

      • 连接MySQL:

        TCP/IP连接。 Mysql -h 192.。。 -u user -p 回车输入密码

    相关文章

      网友评论

          本文标题:数据库概念

          本文链接:https://www.haomeiwen.com/subject/fjrimhtx.html