您现在的位置是:首页 > 数据库 > MySQLMySQL

数据库的基本操作

第十三双眼睛2019-05-09【MySQL】人已围观

简介MySQL安装好以后,首先需要创建数据库,本节将详细介绍数据库的基本操作,主要内容包括创建数据库,删除数据库,不同类型的数据存储引擎和存储引擎的选择

怎么创建数据库
MySQL数据库安装好以后,将会在其data目录下自动创建几个必须的数据库,输入以下的SQL语句,将会查看当前所有的数据库:
SHOW DATABASES;
执行下面的语句将会创建一个数据库
CREATE DATABASE database_name;
其中database_name是数据库的名字,自己定义。
输入以下的语句,可以查看数据库的定义
SHOW CREATE DATABASE database_name; 
怎么删除数据库
删除数据库是将已经存在的数据库从磁盘上删除,删除以后,原本数据库中的数据也一并被删除
DROP DATABASE database_name;
执行上述语句之后,就会将数据库database_name删除
database_name是要删除的数据库名字
数据库存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统通过数据存储引擎进行创建,查询,更新,和删除数据操作。不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能。各种数据库都有多种不同的存储引擎,MySQL的核心就是存储引擎。
MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理事务非安全表的引擎,在MySQL中,不必使用同一种存储引擎,可以针对不同的表使用不同的引擎MySQL支持的存储引擎有InnoDB,MyISM,Memory,Merge,Archive,Federated,CSV,BLACKHOLE等9种引擎,
可以使用如下语句查看系统支持的引擎类型
show engines;
数据库的存储引擎针对的是表,不同的表可以有不同的存储引擎,一个表只能有一个存储引擎

使用下面的语句查看数据库的默认引擎
show  variables like 'storage_engine'
InnoDB存储引擎

InnoDB是事务型数据库的首选引擎,支持事务安全表,支持行锁和外键,InnoDB的主要特性有:
1InnoDB给MySQL提供了具有提交,回滚,和崩溃恢复能力的事务安全存储引擎,在SQL查询中,可以自由的将InnoDB类型的表和其他类型的表混合起来,甚至在一个查询中也可以混合。
2InnoDB是为处理巨大数据量的最大性能设计,它的CPU效率可能是任何其他基于磁盘的关系数据库的引擎不能匹敌的。

3InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池,InnoDB将它的表和索引存在一个逻辑表空间中,表空间中可以包含数个文件,与MyISM表不同,在每个MyISM表中,每个表被存在分离的文件中。
4InnoDB支持完整外键约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6Bde ROWID,并以此为主键。
5InnoDB被用在众多需要高性能的大型数据库的站点上。InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为iddata1的10MB大小的自动扩展数据文件,以及两个名为ib_logfile0
和ib_logfile1的5MB大小的日志文件。
innodb的表空间哟两种形式
1使用系统表空间ibdataN
2独立表空间tableName.ibdata,推荐使用这一种
可以通过设置innodb_file_per_table来设置表空间模式,设置为ON标识使用独立表空间,设置为OFF表示使用系统表空间
系统表空间的缺点:
all in one 不利于管理
系统表空间会产生IO瓶颈
系统表空间很难回收存储空间
独立表空间使用optimize 表名 可以回收存储空间

MyISM存储引擎
MyISM是对ISM的扩展,MyISM拥有较高的插入,查询速度,但是不支持事务,MyISM的主要特性有:
1大文件在支持大文件的文件系统和操作系统上被支持
2当把删除,更新及插入操作混合使用的时候,动态尺寸的行产生更少碎片,这要通过合并相邻被删除的块,以及若下一个块被删除,就扩展到下一块来自动完成
3每个MyISM表的最大索引数是64个,每个索引的最大列数是16个。
4最大的键长度是1000B,对于键长度超过250B的情况,一个超过1024B的键将被用上。‘
5BLOB和TEXT列可以被索引。
6NULL值被允许在索引的列中,这个值占每个键的0-1个字节。
7所有数字键值以高字节优先被存储以允许一个更高的索引压缩
8每一个AUTO_INCREMENT列的内部处理,MyISM为INSERT和UPDATE操作自动更新这一列。
9可以把数据文件和索引文件放在不同的目录
10每个字符列可以有不同的字符集
11有VARCHAR的列可以固定或动态记录长度
12VARCHAR和CHAR列最多可以多达64KB
使用MyISM引擎创建数据库,将产生3个文件,文件的名字以表的名字可以,扩展名指出文件类型,frm文件存储文件定义,数据文件的扩展名为.MYD,索引文件的扩展名是.MYI

MEMORY存储引擎
MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。MEMORY的主要特性如下:
1MEMORY表最大支持32个索引,每个索引16列,以及500B的最大键长度
2MEMORY存储引擎执行HASH和BTREE索引
3可以在MEMORY表中有非唯一键
4MEMORY表使用一个固定的记录长度格式
5MEMORY不支持BLOB或TEXT的列
6MEMORY支持AUTO_INCREMENT列和可包含NULL值列的索引
7MEMORY表在所有的客户端之间共享
8MEMORY表内容被存在内存中,内存是MEMORY表和服务器在查询处理时的空闲中创建的内部表共享
9不在需要MEMORY表时,要释放被MEMORY表使用的内存,应该执行DELETE FROM 或者TRUNCATE TABLE,或者使用DROP TABLE 删除整个表
存储引擎的选择
不同的存储引擎有不通的特点,以适应不通的功能需求,如果要提交,回滚,和崩溃恢复能力的事务安全能力,并要实现并发控制,InnoDB是最好的选择,如果数据表主要用来插入和查询数据,则MyISM引擎能提供较高的效率,如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存型MEMORY引擎的数据表中,如果数据只有INSERT和SELECT操作,可以选择Archive引擎,它支持高并发的插入操作,但是不是事务安全的,如果记录日志信息,可以使用Archive引擎

Tags:

很赞哦! ()

上一篇:数据库基础

下一篇:数据表的基本操作

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 网站名称:JavaStudy
  • 建站时间:2019-1-14
  • 网站程序:帝国CMS7.5
  • 文章统计242篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们