文档章节

MySql数据库 学习记录

杨春炼
 杨春炼
发布于 2016/12/24 15:07
字数 1190
阅读 37
收藏 2

#什么事MySQL数据库? 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合。 我们常说的MySQL数据库,sql server数据库等其实是数据库管理系统,它们可以存储数据,并提供查询和更新数据库中的数据的功能等等。根据数据库如何存储数据和如何操作数据的实现机制不同,这些数据库之间既有区别又有共同点。 MySQL数据库是开放源代码的关系型数据库。目前,它提供的功能有:支持sql语言、子查询、存储过程、触发器、视图、索引、事务、锁、外键约束和影像复制等。 同oracle和sql server等大型数据库系统一样,MySQL也是客户/服务器西宫,并且是单进程多线程架构的数据库。 MySQL的区别在于其它的数据库系统的一个重要特点是支持插入式存储引擎。

那么什么是存储引擎呢?

存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系型数据库中,数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。 在oracle和sql server等数据库中,只有一种存储引擎,所有的数据存储管理机制都是一样的。而MySQL数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 #MySQL有哪些存储引擎? 进入MySQL的客户端时,执行命令 show engines,既可以看到MySQL支持的存储引擎类型. 如下图:

MySQL引擎类型

修改默认存储引擎:

在配置文件your_path/my.cnf中设置如下:

default_storage_engine = InnoDB

详解几种常用的MySQL存储引擎类型:

MyISAM

支持全文索引

支持压缩:用于实现数据仓库,能节约存储空间并提升性能

支持空间索引

支持表级锁:若读写操作比例为9:1或8:2,则使用MyISAM可以提高性能

延迟更新索引:减少IO压力

不支持事务,外键,MVCC,行级锁等

崩溃后无法安全恢复数据

适用场景:多读少写的数据,较小的表,能够容忍崩溃后的修改操作和数据丢失; 如自带的mysql数据库中的表都是使用MyISAM存储引擎的

建议:使用InnoDB存储引擎,并使用read commited的隔离级别,性能并不比MyISAM性能差,故推荐使用InnoDB存储引擎

InnoDB

支持事务:事务日志;日志文件大小一致:如ib_logfile0和ib_logfile1

支持外键

支持MVCC

支持聚簇索引

支持行级锁:即间隙锁

支持辅助索引

支持自适应hash索引

支持热备份

不支持全文索引

ARCHIVE

仅支持insert和select

支持很好的压缩功能

不支持事务,不能很好的支持索引

适用于:存储日志信息,或其它按时间序列实现的数据采集类的应用,如监控日志

CSV

将数据存储为csv格式,不支持索引

仅适用于数据交换场景

BLACKHOLE

没有存储机制,任何发往此引擎的数据都会丢弃

由于其会记录二进制日志,故常用于多级复制架构中作中转服务器

MEMORY

数据保存在内存中,即是一个内存表

仅支持hash索引,使用表级锁

不支持blob和text数据类型

常用于保存中间数据,如周期性的聚合数据等;也用于实现临时表

MRG_MYISAM

是MyISAM的一个变种,能够将多个MyISAM表合并为一个虚表

属于传统的存储引擎,一般不常用

存储引擎的一些问题

1.如何查看服务器有哪些存储引擎可以使用?

为确定你的MySQL服务器可以用哪些存储引擎,执行如下命令: show engines;

2.如何选择合适的存储引擎?

选择标准可以分为:

(1)是否需要支持事务;

(2)是否需要使用热备;

(3)崩溃恢复:能否接受崩溃;

(4)是否需要外键支持;

然后按照标准,选择对应的存储引擎即可。

© 著作权归作者所有

杨春炼
粉丝 12
博文 62
码字总数 34531
作品 0
海淀
架构师
私信 提问
MySQL学习(一)【MySQL数据库基础】

1.1-认识MySQL 什么是数据库 计算机处理和存储的一切信息都是数据。 计算机系统中一种用于存取数据的程序。 一种: 计算机系统中有很多种能够存取数据的程序 它们各有特征和长处,有自己的适...

yanfeilai528
2018/04/14
0
0
Mysql从入门到精通视频课程【典藏版】

从零基础学习MySQL/MariaDB数据库,为我们的Linux运维技术加分,每个成功的男人背后都有个她支撑着,而每个NB的架构后面都有一个MySQL支撑着。 1、Mysql/MariaDB数据库入门简介 本套课程将跟...

让往事随风
2016/04/08
366
3
MongoDB基础知识(一)

互联网行业的发展非常的迅速,数据存储以及架构优化方面也有很多不同的解决方案,例如关系型数据库、非关系型数据库、数据仓库技术等。更多数据库类产品的出现,为我们很好的解决了数据存储的...

tianya1993
2017/05/29
0
0
一些常用的MySQL命令收集整理

MySQL命令行是学习MySQL数据库必须要掌握的知识,下面就为您介绍了10个好用的MySQL命令行,希望对您学习MySQL命令行方面能有所帮助。 1、显示数据表的结构: mysql> DESCRIBE 表名; (DESC 表...

IceInto
2010/12/03
110
0
mysql--------常用命令

命令或者代码来学习数据库是最好的,当你熟悉的不能再熟悉了再去用可视化工具,个人建议。 打开数据库,输入密码就可以操作数据库了 操作数据库 登录到mysql中,然后在mysql的提示符下运行下列...

切切歆语
2018/01/13
16
0

没有更多内容

加载失败,请刷新页面

加载更多

【2019年8月版本】OCP 071认证考试最新版本的考试原题-第5题

choose the best answer The CUSTOMERS table has a CUST_LAST_NAME column of data type VARCHAR2. The table has two rows whose COST_LAST_MANE values are Anderson and Ausson. Which q......

oschina_5359
37分钟前
3
0
电脑怎样制作流程图?分享绘制流程图方法

流程图的绘制可以用很多方法来实现,小编经常使用电脑对流程图进行绘制,即简单又便利,相信很多朋友都因为不知道怎样绘制流程图而选择了放弃,今天这篇文章希望可以让大家重拾绘制流程图的信...

干货趣分享
39分钟前
4
0
Elasticsearch 7.x 之文档、索引和 REST API 【基础入门篇】

前几天写过一篇《Elasticsearch 7.x 最详细安装及配置》,今天继续最新版基础入门内容。这一篇简单总结了 Elasticsearch 7.x 之文档、索引和 REST API。 什么是文档 文档Unique ID 文档元数据...

泥瓦匠BYSocket
43分钟前
5
0
TL665x-EasyEVM开发板处理器、flash、RAM

TL665x-EasyEVM是广州创龙基于SOM-TL665x核心板研发的一款TI C66x多核定点/浮点高性能DSP开发板,采用核心板+底板方式,底板尺寸为200mm*106.65mm,采用4*50pin和1*80pin B2B工业级连接器,稳...

Tronlong创龙
47分钟前
3
0
DevExpress Report-XRTable绑定数据

将从跳转前的页面(A)中获取传入的数据(dtOrd、BatchID、ModelID),绑定到Report报表对应的控件 ,代码如下: this.xrtBatchID.Text = sBatchID; this.xrtModel.Text ...

_Somuns
48分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部