设为首页 加入收藏

TOP

MySql基础知识、存储引擎与常用数据类型(一)
2015-07-24 11:07:08 来源: 作者: 【 】 浏览:1
Tags:MySql 基础知识 存储 引擎 常用 数据 类型

本文将主要讲解了数据库的一些基础知识,介绍了MySql的存储引擎,最后讲了MySql常用的数据类型

1、基础知识

1.1、数据库概述

简单地说:数据库(Database或DB)是存储、管理数据的容器; 严格地说:数据库是“按照某种数据结构对数据进行组织、存储和管理的容器”。 总结:数据永远是数据库的核心。 1.2、关系数据库管理系统
通过“数据库管理系统”,数据库用户可以轻松地实现数据库容器中各种数据库对象的访问(增、删、改、查等操作),并可以轻松地完成数据库的维护工作(备份、恢复、修复等操作) 数据库用户无法直接通过操作系统获取数据库文件中的具体内容; 数据库管理系统通过调用操作系统的进程管理、内存管理、设备管理以及文件管理等服务,为数据库用户提供管理、控制数据库容器中各种数据库对象、数据库文件的接口。

\

1.3、关系数据库

关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。

基本特征

关系数据库

在一个给定的应用领域中,所有实体及实体之间联系的集合构成一个关系数据库。

关系数据库的型与值

关系数据库的型称为关系数据库模式,是对关系数据库的描述,若干域的定义,在这些域上定义的若干关系模式。
关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库。

\

1.4、结构化查询语言SQL

结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系数据库标准语言。目前,SQL语言已被确定为关系数据库系统的国际标准,被绝大多数商品化关系数据库系统采用。在SQL语言中,指定要做什么而不是怎么做,不需要告诉SQL如何访问数据库,只要告诉SQL需要数据库做什么。可以在设计或运行时对数据控件使用SQL语句。

1.5、SQL数据库的体系结构
SQL数据库的体系结构基本上也是三级模式结构

\

SQL术语与传统的关系模型术语不同。在SQL中,外模式对应于视图,模式对应于基本表,元组称为行,属性称为列。内模式对应于存储文件。SQL数据库的体系结构具有如下特征:

SQL模式(Schema)是表和约束的集合。表(Table)是行(Row)的集合,每行是列(Column)的序列,每列对应一个数据项。 表可以是一个基本表,也可以是一个视图。基本表是实际存储在数据库中的表。视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库中只存放视图的定义而不存放视图的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。 一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表,一个表可以带若干索引,索引也存放在存储文件中。每个存储文件与外部存储器上一个物理文件对应,存储文件的逻辑结构组成了关系数据库的内模式。用户可以用SQL语句对视图和基本表进行查询等操作。在用户看来,视图和基本表是一样的,都是关系(即表格)。 SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有Fortran、Cobol、Pascal、PL/I、C和Ada等语言;SQL语言也能作为独立的用户接口,供交互环境下的终端用户使用。

1.6、SQL的组成

数据定义 这一部分也称为“SQL DDL”,用于定义SQL模式、基本表、视图和索引。 数据操纵 这一部分也称为“SQL DML”。数据操纵分成数据查询和数据更新两类。其中数据更新又分成插入、删除和修改三种操作。 数据控制 这一部分也称为“SQL DCL”。数据控制包括对基本表和视图的授权,完整性规则的描述,事务控制语句等。

嵌入式SQL使用 这一部分内容涉及到SQL语句嵌入在宿主语言程序中的使用规则。

?

2、存储引擎


关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。对于MySQL来说,它提供了很多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用MySQL强大的功能。
mysql客户端中,使用以下命令可以查看MySQL支持的引擎。
show engines;

\

可以看到MySQL有多种存储引擎:
MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。

平时用得最多的是MyISAM和InnoDB,下面主要来介绍这两种。

2.1、MyISAM

MyISAM表是独立于操作系统的,这说明可以轻松地将其从Windows服务器移植到Linux服务器;每当我们建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,文件名就是表明。例如,我建立了一个MyISAM引擎的tb_Demo表,那么就会生成以下三个文件:

1.tb_demo.frm,存储表定义;

2.tb_demo.MYD,存储数据;

3.tb_demo.MYI,存储索引。

MyISAM表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM存储引擎。MyISAM存储引擎特别适合在以下几种情况下使用:

1.选择密集型的表。MyISAM存储引擎在筛选大量数据时非常迅速,这是它最突出的优点。

2.插入密集型的表。MyISAM的并发插入特性允许同时选择和插入数据。例如:MyISAM存储引擎很适合管理邮件或Web服务器日志数据。

2.2、InnoDB

InnoDB是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。InnoDB是作为默认的存储引擎。InnoDB还引入了行级锁定和外键约束,在以下场合下,使用InnoDB是最理想的选择:

1.更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。

2.事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。

3.自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。

4.外键约束。MySQL支持外键的存储引擎只有InnoDB。

5.支持自动增加列AUTO_INCREMENT属性。

一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB是不错的选择。

2.3、MEMORY

使用MySQL Memory存储引擎的出发点是速度。为得到最快的响应时间,采用的逻辑存储介质是系统内存。虽然在内存中存储表数据确实会提供很高的性

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySQL优化之――数据类型宽度 下一篇mysql存储引擎

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 学习线路图是怎 (2025-12-25 15:19:15)
·关于 Java 学习,有 (2025-12-25 15:19:12)
·有没有Java swing教 (2025-12-25 15:19:09)
·Start, Stop, and Di (2025-12-25 14:50:57)
·C语言入门教程:零基 (2025-12-25 14:50:54)