MySQL基础知识

MySQL常常和“数据库”连在一起读,这很容易对老手造成误会,认为MySQL就是一个数据库,其实不是这样,MySQL是数据库的汇合,MySQL外面有很多数据库,那么数据是间接存在数据库里的吗?并不,数据库底下还有一个叫做数据表的存储单元,数据表外面才存储数据。

打个比方,好比一座大图书馆,就是MySQL,图书馆外面分南库,北库,这就是数据库,每个库外面的书都是放在书架上的,书架就是数据表,而放在书架上的很多本书,就是数据。这么说,大家应该了解了吧,所以按大小程序排个序就应该是,MySQL>数据库>数据表>数据。

MySql数据库是凋谢源代码的关系型数据库。目前,它能够提供的性能有:反对sql语言、子查问、存储过程、触发器、视图、索引、事务、锁、外键束缚和影像复制等。

同Oracle 和SQL Server等大型数据库系统一样,MySql也是客户/服务器零碎并且是单过程多线程架构的数据库。

MySql区别于其它数据库系统的一个重要特点是反对插入式存储引擎。

那么什么是存储引擎呢?

存储引擎说白了就是如何存储数据、如何为存储的数据建设索引和如何更新、查问数据等技术的实现办法。因为在关系数据库中数据的存储是以表的模式存储的,所以存储引擎也能够称为表类型(即存储和操作此表的类型)。

在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。 而MySql数据库提供了多种存储引擎。用户能够依据不同的需要为数据表抉择不同的存储引擎,用户也能够依据本人的须要编写本人的存储引擎。

MySql中有哪些存储引擎?

  • MyISAM:这种引擎是mysql最早提供的。

这种引擎又能够分为动态MyISAM、动静MyISAM 和压缩MyISAM三种:

1、动态MyISAM:如果数据表中的各数据列的长度都是事后固定好的,服务器将主动抉择这种表类型。因为数据表中每一条记录所占用的空间都是一样的,所以这种表存取和更新的效率十分高。当数据受损时,复原工作也比拟容易做。

2、动静MyISAM:如果数据表中呈现varchar、xxxtext或xxxBLOB字段时,服务器将主动抉择这种表类型。绝对于动态MyISAM,这种表存储空间比拟小,但因为每条记录的长度不一,所以屡次批改数据后,数据表中的数据就可能离散的存储在内存中,进而导致执行效率降落。同时,内存中也可能会呈现很多碎片。因而,这种类型的表要常常用optimize table 命令或优化工具来进行碎片整顿。

3、压缩MyISAM:以上说到的两种类型的表都能够用myisamchk工具压缩。这种类型的表进一步减小了占用的存储,然而这种表压缩之后不能再被批改。另外,因为是压缩数据,所以这种表在读取的时候要先时行解压缩。

然而,不论是何种MyISAM表,目前它都不反对事务,行级锁和外键束缚的性能。

  • MyISAM Merge引擎:这种类型是MyISAM类型的一种变种。

合并表是将几个雷同的MyISAM表合并为一个虚表。常利用于日志和数据仓库。

  • InnoDB: InnoDB表类型能够看作是对MyISAM的进一步更新产品,它提供了事务、行级锁机制和外键束缚的性能。
  • memory(heap): 这种类型的数据表只存在于内存中。
    它应用散列索引,所以数据的存取速度十分快。 因为是存在于内存中,所以这种类型常利用于长期表中。
  • archive: 这种类型只反对select 和 insert语句,而且不反对索引。
    常利用于日志记录和聚合剖析方面。

当然MySql反对的表类型不止下面几种。

总结

明天次要介绍了什么是MySql数据库,并进一步引出了它的一个重要个性, 即插入式的多存储引擎机制。而后,简略介绍了什么是存储引擎和MySql中几种次要的存储引擎。

最初,也分享给大家我学习mysql的学习教程,好货色要一起分享!!

MySQL学习教程是能源节点老杜讲的,具体解说了MySQL的相干常识,包含MySQL概述,MySQL应用环境,MySQL零碎个性,MySQL初学根底,MySQL管理工具,如何装置MySQL及MySQL新个性,学mysql,刷完这套视频根本的常识也就把握了。

mysql学习材料见评论区!!!