MySQL ------ 简介与存储引擎

一、简介

MySQL 一个开放源代码的关系型数据库管理系统(RDBMS),速度,可靠行性、适应性较棒,在不需要支持事务处理的情况下,是管理内容的最好选择

有两个版本:社区版和企业版

  社区版:可自由下载且完全免费,但是官方不提供任何技术支持,适用于大多数普通用户

  企业版:不能自由下载且收费,该版本提供了更多的功能,可以享受完备的技术支持,适用于对数据库的功能和可靠性要求比较高的企业用户。

MySQL更新较快,一些主要的优势有: 运行速度快,成本低,容易使用,可移植性强,适用于更多用户

 关系型数据库存储,可以看成各个表之间存有联系的数据库,其中表存储实体。

  其中,实体可以解释为所有客观存在的可以被描述的事物。这个实体可以通过一些特性的描述构成,和面向对象中的变量一样,而在数据库中,使用表中的列(column)表示也叫字段,每一行表示对应这一个实体,可以看成一个对象,在数据库中专业的叫法是记录(record)。

表之间的关系通过键、类型、规则、权限、约束等描述实现,一些常见的操作对象有存储过程、视图、游标等

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

1、数据库管理系统(DBMS): 由一个互相关联的数据集合和一组访问数据的程序构成。一个管理数据库的系统软件,

       主要面对的操作对象是数据库

  包括数据库以及用于访问管理数据库的接口系统。

  基本目标是提供一个可以方便有效的存储数据信息的环境

  主要功能是维护数据库,并有效的访问数据库中各个部分的数据

注意:严格意义上来将MySQL 是数据库管理系统,不过我们通常也会将数据管理系统成为数据库。

 2、数据库系统 (DBS):一个 实际可以运行的系统,可以对系统提供的数据进行存储、维护和应用,由存储介质、处理对象和管理系统共同组成的集合体通常由软件、数据库以及数据库管理员组成。

3、数据库管理员(DBA):指在数据库系统中负责创建、监控和维护整个数据库的专业管理员。

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

数据库设计

4、数据冗余(Redundance):在数据库系统中,数据重复出现的现象,减少数据冗余的最常见的方法就是分类存储,虽然会使表显得更加独立,但是会增加数据查找的复杂性,降低了效率,因此在设计时允许存在必要的冗余。

5数据完整性(Integrality):指数据库中数据的准确性。实际中就是:当两个表或多个表存储的信息相互关联时,当修改其中一个表中的数据时,其他相关联的表也要进行修改

6、主键(Primary Key): 表中唯一标识这一行的列,用于强制数据完整性。

          一般一个表中只能有一个主键且不能为null,当由两列或多列组合起来,来唯一标识表中每一行的主键叫复合主键。

选择列作为主键时要考虑最少性和稳定性两个原则:

最少性:指列数最少的键。字面上意思一个表中有单个主键和复合主键当然选单一主键,操作一列比多列快,简单(当然两个整数类型列组合要比一个很大字符类型的列要快)

稳定性:指列中数据不发生改变。由于主键是联系两个表或多个表之间的纽带,所以不能经常更新,最好永远不变

7、外键():相对于主键而言的键,从表中对应于主表的列,就是从表中含有主表的主键,在从表中有一个专门描述的词叫外键或引用键

           特点:为了强制引用的完整性,避免关联错误,一个表可以有多个外键

 

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

安装配置

下载地址:

https://dev.mysql.com/downloads/mysql/

默认端口:3306

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

二、存储引擎

上述我们明白MySQL属于数据库管理系统,其中包括数据库以及用于数据库访问管理的接口系统。

数据库负责存储数据,接口系统负责管理数据库。由于不同的对数据的容量、访问速度、数据安全性有不同的要求,为了满足不同用户的业务需求,MySQL采用 多种存储引擎进行数据存储。

存储引擎的作用:指定了表的存储类型,即如何存储和索引数据、是否支持事务等,同时存储引擎也决定了表在计算机中的存储方式。

MySQL 5.5 支持的存储引擎有:InnoDB、MyISAM、MEMORY、MRG_MyISAM、ARCHIVE、FEDERATED、CSV、BLACKHOLE、PERFORMANCE_SCHEMA  九种。

-- 查看系统支持的引擎类型
show engines;

Support 列的值表示某种引擎是否能使用,YES表示可以使用,NO表示不能使用,DEFAULT表示该引擎为当前默认的存储引擎。

Transactions列的值表示是否支持事务,Yes表示支持,NO表示不支持

 

1、常用的存储引擎 InnoDB和MyISAM

 InnoDB和MyISAM的使用场合:

  InnoDB存储引擎:在事务处理上有优势,支持具有提交、回滚和 崩溃恢复能力的事务控制,所以比MyISAM引擎占用更多有的磁盘空间。因此对需要进行频繁的更新、删除操作同时还对事务的完整性要求比较高,需要实现并发控制的应用,适合使用该存储引擎。

  MyISAM存储引擎:该存储引擎不支持事务也不支持外键约束,访问速度比较快。因此对于不要事务处理,以访问为主的应用适合使用该存储引擎。

 

2、查看更改默认的操作引擎

由上通过查询系统支持引擎可知mysql默认的存储引擎是InnoDB,也可以借助以下进行查询

-- 查询默认操作引擎 storage_engine 关键字
show variable like 'storage_engine%'

修改默认操作引擎

通过配置向导和修改配置文件 my.ini 来实现。

修改my.ini 时,只需要修改  default-storage-engine = InnoDB ,将InnoDB 换成你需要的

default-storage-engine = InnoDB

注意:修改完之后需要重启MySql 服务。

 

3、指定表的存储引擎

数据表默认使用当前MySQL默认的存储引擎,为了达到表的特殊需求,可以重新设置表的存储引擎

-- 指定表的存储引擎
create table 表名(
...
)engine = 存储引擎;

如将 表 tb_test的存储引擎设置为 MyISAM类型

create table tb_test(
 ID int(6) 
)engine=MyIsAM

4、MySQL的数据文件

(1)、数据文件存储位置

不同操作系统数据文件的默认存储位置不同,可以通过配置文件my.ini 中的参数datadir 获取或修改该路径

-- 在Windows 7 操作系统中 MySQL数据文件默认 的存储位置为
C:\ProgramData\MySQL\MySQL Server 5.5\data
-- 在my.ini中进行修改
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/data/"

 

 

该目录下,每个数据相关文件均放在以数据库命名的文件夹中

 

 

(2)、MyISAM类型的表文件

存储引擎为MyISAM 类型的表文件,与之相关的数据文件有三个,扩展名分别为 .frm, .MYI, .MYD

  .frm文件 : 表结构定义文件。主要存放表的元数据,包括表结构定义信息等,该文件与存储引擎无关。(任何存储类型的表都会有这个文件,存放位置在数据库名文件目录下)

  .MYI文件:索引文件。主要存放MyISAM 类型表的索引信息,每个MyISAM 类型的表都会有一个 .MYI 文件 ,存放的位置与  .frm文件相同

  .MYD文件:数据文件。存放表中数据的文件。存放的位置与  .frm文件相同

 

(3)、InnoDB 类型的表文件

存储引擎为MyISAM 类型的表文件,与之相关的数据文件有两个, 表名.frm 和 idbatal 文件

  .frm文件 : 表结构定义文件。主要存放表的元数据,包括表结构定义信息等,该文件与存储引擎无关。(任何存储类型的表都会有这个文件,存放位置在数据库名文件目录下)

  ibdatal 文件:数据文件。保存所有InnoDB 类型表的数据。这个文件保存位置与 .frm 位置不同,可以通过my.ini 文件中的参数 innodb_data_home_dir 查询或修改

如: xxxxxxxxxxx

innodb_data_home_dir = "E:/MySQL Datafiles/"

 

posted on 2020-09-08 17:44  obge  阅读(500)  评论(1编辑  收藏  举报