失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数据库 - 库表操作 - 存储引擎

数据库 - 库表操作 - 存储引擎

时间:2021-09-28 11:22:58

相关推荐

数据库 - 库表操作 - 存储引擎

一、库操作:

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| test|

+--------------------+

1.系统数据库:

information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等

performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象

mysql: 授权库,主要存储系统用户的权限信息

test: MySQL数据库系统自动创建的测试数据库

2.创建数据库:

help create # 查看帮助信息

help create database

# /doc/refman/5.6/en/create-database.html

...

语法:

create database 数据库名 charset utf8;

create database db1 charset utf8;

命名规则:

可以由字母、数字、下划线、@、#、$

区分大小写

唯一性

不能使用关键字如 create select

不能单独使用数字

最长128位

3.数据库相关操作:

查看数据库

show databases;

show create database db1;

select database();

选择数据库

use db1;

删除数据库

drop database db1;

修改数据库

alter database db1 charset utf8;

alter database db1 charset gbk;

二、表操作:

1.什么是存储引擎:

mysql中建立的库===>文件夹

库中建立的表===>文件

存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)

存储引擎:表的类型 (表就是文件) 有不同的文件类型 .mp4 .txt

2.mysql支持得存储引擎:

mysql> show engines; # #查看所有支持的存储引擎

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| Engine | Support | Comment| Transactions | XA | Savepoints |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| FEDERATED| NO| Federated MySQL storage engine | NULL | NULL | NULL |

| MRG_MYISAM | YES| Collection of identical MyISAM tables| NO | NO | NO |

| MyISAM | YES| MyISAM storage engine | NO | NO | NO |

| BLACKHOLE| YES| /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |

| CSV| YES| CSV storage engine| NO | NO | NO |

| MEMORY | YES| Hash based, stored in memory, useful for temporary tables| NO | NO | NO |

| ARCHIVE | YES| Archive storage engine | NO | NO | NO |

| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys| YES| YES | YES |

| PERFORMANCE_SCHEMA | YES| Performance Schema| NO | NO | NO |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

9 rows in set (0.00 sec mysql> show variables like 'storage_engine%'; #查看正在使用的存储引 +----------------+--------+ | Variable_name | Value | +----------------+--------+ | storage_engine | InnoDB |+----------------+--------+

1 row in set (0.00 sec)

1、InnoDB 存储引擎

支持事务,其设计目标主要面向联机事务处理(OLTP)的应用。

2、MyISAM 存储引擎

不支持事务、表锁设计、支持全文索引,主要面向一些 OLAP 数 据库应用。

在 MySQL 5.5.8 版本之前默认的存储引擎(除 Windows 版本外)。

3、NDB 存储引擎

NDB 存储引擎是一个集群存储引擎,类似于 Oracle 的 RAC 集群。

4、Memory 存储引擎

Memory 存储引擎中的数据都存放在内存中,数据库重 启或发生崩溃,表中的数据都将消失。

5、Infobright 存储引擎

第三方的存储引擎。其特点是存储是按照列而非行的,因此非常 适合 OLAP 的数据库应用。

其官方网站是 /,上面有不少成功的数据 仓库案例可供分析。

6、NTSE 存储引擎

网易公司开发的面向其内部使用的存储引擎。

7、BLACKHOLE

黑洞存储引擎,可以应用于主备复制中的分发主库。

3.使用存储引擎:

1.建表时指定

create table t1(id int,name char)

create table t2(id int,name char)engine=innodb;

create table t3(id int,name char(6))engine=memory;

2.在配置文件中指定默认的存储引擎

/etc/f

[mysqld]

default-storage-engine=INNODB

innodb_file_per_table=1

3.查看

[root@egon db1]# cd /var/lib/mysql/db1/

[root@egon db1]# ls

db.opt t1.frm t1.ibd t2.frm t2.ibd

4.练习

创建四个表,分别使用innodb,myisam,memory,blackhole存储引擎,进行插入数据测试

[db1]> create table t1(id int)engine=innodb;

[db1]> create table t2(id int)engine=myisam;

[db1]> create table t3(id int)engine=memory;

[db1]> create table t4(id int)engine=blackhole;

[db1]> exit

1.windows:

文件夹中查看到发现memory和blackhole两种存储引擎只有表结构,无数据

db.opt t1.frm t1.ibd t2.MYD t2.MYI t2.frm t3.frm t4.frm

测试后两种存储引擎是否无数据,重启mysql查看

停止mysql服务:

net stop MySQL

启动mysql服务:

net start MySQL

memory,在重启mysql或者重启机器后,表内数据清空

blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录

2.linux:

[root@egon db1]# ls /var/lib/mysql/db1/ #发现后两种存储引擎只有表结构,无数据

db.opt t1.frm t1.ibd t2.MYD t2.MYI t2.frm t3.frm t4.frm

查看mysql版本:

status; # \s

select version();

mysql> select version();

+-------------------------+

| version()|

+-------------------------+

| 5.7.21-0ubuntu0.16.04.1 |

+-------------------------+

1 row in set (0.00 sec)

# 重启mysql服务:

# service mysqld restart

# service mysql restart (5.5.7版本命令)

# 或者:

# /etc/init.d/mysql restart

# 停止:

# service mysql stop

# 或者:/etc/init.d/mysql stop

# 启动:

# service mysql start

# 或者:

# /etc/init.d/mysql start

#memory,在重启mysql或者重启机器后,表内数据清空

#blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录

如果觉得《数据库 - 库表操作 - 存储引擎》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。