MySql技术内幕-读书笔记1

数据库的操作

使用数据库

USE db_name; //指定某数据库为默认数据库

新建数据库

CREATE DATABASE [IF NOT EXIST/*不存在时创建*/] db_name
    [CHARACTER SET charset/*指定字符集*/]
    [CHOLLATE chollation/*指定排序规则*/];

新建数据库后,会在mysql的数据目录新建对应的子目录,并在子目录中新建db.opt文件来存储数据库信息。可以通过以下语句查看数据库的定义:

SHOW CREATE DATABASE db_name;

效果如下:
这里写图片描述

数据库删除

DROP DATABASE db_name;

数据库变更

ALTER DATABASE db_name
    [CHARACTER SET charset/*指定字符集*/]
    [CHOLLATE chollation/*指定排序规则*/]

存储引擎

查询可用的引擎

show engines;select * from information_schema.engines;

结果如下:
这里写图片描述
其中,Support表示是否支持,Transaction表示是否支持事务,XA表示支持是否分布式事务处理,Savepoints表示是否支持部分事务回滚。不管使用那种引擎,在新建表时,均会在对应数据库的子目录中穿件table_name.frm文件。另外,有的存储引擎都有自己特定的文件扩展名:

存储引擎文件
MyISAM.MYD(数据),.MYI(索引)
MERGE.MRG(各成员MyISAM数据表的名字构成的清单)
InnoDB.ibd(数据和索引)
ARCHIVE.ARZ(数据),.ARM(元数据)
CSV.CSV(数据),.CSM(元数据)

不同的存储引擎对格式文件和数据表的处理方式如下:

  • MEMORY数据表放在内存中,不占用任何硬盘空间;
  • 默认情况,InnoDB把表数据和索引存储到共享表空间中,共享一个存储空间,除非,显示的为数据表声明自己的表空间;
  • Falcon把表数据和索引放到默认表空间中,除非根据自己需要新建表空间
  • BLACKHOLE和EXAMPLE引擎不存储任何数据,无需任何文件
  • FEDERATED引擎用于访问远程mysql的数据表,引擎本身不创建任何文件

存储引擎简介

MyISAM引擎

MyISAM是MySql的默认存储引擎,它提供了键压缩功能,与其他引擎相比,它为AUTO_INCREATEMENT数据列提供了更多的功能。MyISAM通过FULLTEXT索引可以支持全文检索,支持空间数据类型和SPECIAL索引。

MERGE引擎

MERGE引擎可以同时查询多个MyISAM数据表,相当于合并了多个成员数据库,但是它要求数据表必须具备一样的结构。

MEMORY引擎

数据完全存储在内存中,检索数据的速度快。但是,数据不具备持久性,内存掉电就会丢失。同时,MEMORY存储引擎默认使用散列索引,对相等比较效率较高,但是范围查找速度慢。它要求数据表中的字段必须为固定长度的字段。

InnoDB引擎

支持事务的提交和回滚;
系统崩溃后可自动恢复;
外键及引用完整性支持,支持递归删除更新;
支持行级别锁和多版本机制,并发性能好;

FALCON引擎

存储时对数据压缩,检索时再解压缩,以节约存储空间;
其余同InnoDB

FEDREATED引擎

用于访问其他MySql服务器管理的数据。

NDB引擎

MySql集群存储引擎,

存储引擎的二进制可移植性

二进制可移植性:直接通过拷贝硬盘文件到其他机器就能正常使用。

  • MyISAM和InnoDB数据表的存储格式与机器无关,具备二进制可移植性;前提条件是:机器使用的是二进制补码整数算法和IEEE浮点格式(一般机器均支持)
  • MERGE的可移植性取决于它包含的MyISAM;
  • MEMORY不具备,其数据均在内存中;
  • FALCON日志和表空间文件的存储与机器相关,移植性取决于机器硬件特性是否相同;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值