mysql从零开始第一篇

2018-08-09  本文已影响0人  Bili_bo

在此之前,默认以安装好mysql

首先连接数据库 mysql -u root -p,然后输入密码

查看当前存在的所有数据库 show databases;

创建数据库 create database database_name;

删除数据库 drop database database_name;

数据库存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新、删除数据操作。不同的存储引擎提供不同的存储机制、索引机制、锁定水平等。mysql的核心就是存储引擎。

mysql存储引擎简介

mysql提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在mysql中,可以对每张表使用不同的存储引擎。mysql5.7支持的存储引擎有InnoDB,MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE等,使用show engines查看系统支持的引擎类型。

InnoDB存储引擎

InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁和外键。是mysql5.5.5之后(之前是myisam),mysql的默认存储引擎.InnoDB的主要特性如下:

1、InnoDB给mysql提供了具有提交、回滚和崩溃恢复的事务安全(ACID兼容)存储引擎,InnoDB锁定行级时,能给select语句提供一个非锁定读。

2、InnoDB是为处理巨大数据量的最大性能设计

3、InnoDB存储引擎完全与mysql服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引存在一个逻辑表空间中,表空间可以包含数个文件。而MyISAM表中的每个表被存放在分离的文件中。

4、InnoDB支持外键完整性约束,如果没有在表定义时指定主键,InnoDB会为每一行生成一个ROWDB,并以此作为主键。

5、InnoDB被用在众多需要高性能的大型数据库站点。InnoDB不创建目录,使用InnoDB时,mysql将在mysql数据目录下创建一个ibdatal的10MB自动扩展的数据文件,以及二个名为ib_logfile0和ib_logfile1的5MB大小的日志文件。

MyISAM存储引擎

MyISAM基于ISAM存储引擎,并对其进行扩展。它是在web、数据仓储等环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务,MyISAM的主要特性如下:

1、大文件(达63位文件长度)在支持大文件的文件系统和操作系统上被支持

2、当删除、更新、插入操作混合使用的时候动态尺寸的行产生更少碎片。

3、每个MyISAM表的最大索引数是64,可以通过重新编译来改变。每个索引最大的列数是16个

4、最大的键长度是1000B。也可以通过编译来改变

5、BLOG和TEXT列可以被索引

6、NULL值被允许在索引的列中

7、所有的数字键值以高字节优先被存储,以允许一个更高的索引压缩

8、每个表都有一个AUTO_INCREMENT列的内部处理。MyISAM为INSERT和UPDATE操作自动更新这一行。这使的AUTO_INCREMENT列更快

9、可以把数据文件和索引文件放在不同的目录

10、每个字符列可以有不同的字符集

11、VARCHAR可以固定或动态记录长度

12、VARCHAR和CHAR列可以多达64KB

使用MyISAM引擎创建数据库,将生产三个文件。文件的名字以表的名字开始,扩展名指出文件类型:frm文件存储表定义,数据文件的扩展名为.MYD,索引文件的扩展名为.MYI

MEMORY存储引擎

MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。主要特性如下:

1、MEMORY表的每个表可以有多达32个索引,每个索引16列,以及500B的最大键长度

2、MEMORY存储引擎执行HASH和BTREE索引

3、可以在一个MEMORY表中有非唯一键

4、MEMORY不支持BOLG或TEXT列

5、MEMORY支持AUTO_INCREMENT列和包含NULL的值的列索引

6、MEMORY表在所有客户端之间共享

7、MEMORY表内容被存在内存中,内存是MEMORY表和服务器在查询处理时的空闲中创建的内部表共享

8、当不再需要MEMORY表中的内容时,要释放被MEMORY表使用的内存,应该执行delete from 或者truncate table 或者删除整个表drop table

存储引擎的选择

如果要提供提交、回滚和奔溃恢复能力的事务安全能力,并要求实现并发控制,InnoDB是个不错的选择。如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率,如果只是临时的存放数据,数据量并不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的MEMORY引擎,如果只有insert和select操作,可以选择archive引擎,archive支持高并发的插入操作,但本身并不是事务安全的,所以非常适合存储归档数据。如记录日志信息

上一篇下一篇

猜你喜欢

热点阅读