mysql之四大引擎、账号管理以及建库

发布时间:2024年01月02日

一.数据库存储引擎

1.1存储引擎的查看

?1.2InnoDB

1.3MyISAM

?1.4 MEMORY

1.5 Archive

二.数据库管理

?2.1元数据库简介

2.2元数据库分类

2.3 相关操作

?2.4 MySQL库

三.数据表管理

?3.1三大范式

3.2 基本数据类型

3.2.1优化原则

3.3 整形

?3.4 实数

?3.5 字符串

3.6 text&blob

3.7 日期类型

3.8 选中标识符

四.数据库账号管理?

4.1 查询用户

?4.2查看常用的用户信息

4.3 权限操作

4.3.1设置权限

?

五.思维导图

??编辑


一.数据库存储引擎

数据库存储引擎是数据库底层的组件,是数据库的核心,可以创建、查询、更新、删除数据库。不同的存储引擎提供的存储方式、索引机制等不同,如MySQL的存储引擎支持多种不同的存储引擎,如MyISAM、InnoDB、CSV等 。

1.1存储引擎的查看

? 命令:SHOW ENGINES

?

?support字段说明

1.default为默认引擎

2.YES则可以使用

3.NO则不可以使用

?1.2InnoDB

1.使用场景:一般事务性,都使用该引擎,用途最广,如果不确定使用哪种引擎,则使用该引擎

2.特点:修改快,支持事务

存储限制:64GB

事务支持:支持事务

1.3MyISAM

1.使用场景:大量查询,很少修改的场景

2.特点: 强调了快速读取的操作

存储限制:256GB

事务支持:不支持事务

?1.4 MEMORY

1.使用场景:由于易失性,可以用于存储在分析中产生的中间表

2.特点:所有的数据都保存在内存中,一旦服务器重启,所有memory存储引擎的表数据会消失但是表结构会保存下来

存储限制:取决于RAM(随机存储器)

事务支持:不支持事务

1.5 Archive

1.使用场景:?在日志和数量采集的时候可以使用

2.特点:只允许插入和查询,不允许修改和删除,压缩存储,节约空间,可以实现高并发的插入,支持在自增ID上建立索引

archive表比M有ISAM表要小大约75%,比支持事务处理的InnoDB表小大约83%

不支持索引(自增ID列除外)

二.数据库管理

?2.1元数据库简介

记录Mysql自身数据的数据库

2.2元数据库分类

1.information_schema:信息数据库,保存MySQL所维护的其他数据库信息?.例如:数据库名,数据库的表,表栏的数据类型于访问权限等

2.MySQL:核心数据库,主要负责存储数据库用户,权限设置,关键字等.MySQL自己需要使用的控制和信息管理.

3.performance_schema:用于MySQL的监控数据的存放

2.3 相关操作

数据库的增删改查及使用

1.use数据库名

2.create database? if not exists 数据库名 degaut charset utf8 collate utf8_general_ci;

3.show database

3.drop database 数据库名

?2.4 MySQL库

权限相关的表

1.user表(用户层权限)

权限:his oa 物流

2.db表(数据库层权限)

权限:患者记录表, 门诊卡表,看病流程表

3.tables_priv表(表层权限)

权限:增加,删除,修改,查询,创表,删除表

4.columns_priv表(字段层权限)

权限:患者id,患者姓名,患者年龄

三.数据表管理

?3.1三大范式

第一范式:列不可再分(原子性)

第二范式:主键约束

第三范式:外键约束

3.2 基本数据类型

3.2.1优化原则

1.更小通常更好:更小通常更快

更小的磁盘空间,内存,cpu花村

2.简单就好:整形比字符串操作代价更小

用的时间类型表示日期而不用字符串

3.尽量避免NULL:NULL为队列默认值,但除非确实需要,应尽量避免使用NULL

尽量指定列为NOT NULL,特别式需要建索引的列

查询中包括有NULL的类.,MySQL更难优化:不利于使用索引,,,索引统计更复制..值比较,更复杂

4.用整型值而不是字符串表示IP地址:INET_ATON()...INET_NTOA()

3.3 整形

1.tinyint8位(-128-127)

2.smallint 16位(-32768-32767)

mediumint24位(-8388608-8388607)

int 32位 大约正负21亿

bigint 64位

?3.4 实数

float 4个字节

double 8个字节

decimal 最多允许65个字节

?3.5 字符串

1.char:定长,MySQL根据定义字符串长度一次分配足够的空间

通用场景:较短的字符串,且所有值接近同一长度

2.varchar:比定长类型节约空间

通用场景:字符串的最长长度比评估长度大很多,列的更新比较少

缺点:频繁修改,且字符串的长度变化大时,可能出现页分裂

3.6 text&blob

1.text存储字符数据:tinytext,?smalltext,mediumtext,text,longtext

2.blob存储二进制数据:tinyblob,smallblob,mediumtext,text, longblod

3.7 日期类型

datetime:精度:秒

与时区无关,8个字节存储空间

范围:1001-9999年?

timestamp:保存1970年1月1日午夜以来的秒数

占用4个字节存储空间

范围:1970-2038

与时区有关

默认为NOT NULL

通常尽量使用timestamp?

精度:秒

?data:yyyy-mm-dd

time:hh.mm.ss?

3.8 选中标识符

用来进行关联操作

在其他表中做为外键

整型通常是标识列的最好选则

相关的表中使用时间的数据类型?

尽量避免字符串作为标识列,尤其是随机生成的字符串

四.数据库账号管理?

4.1 查询用户

SELECT*from user

?

?4.2查看常用的用户信息

select host user from user

4.3 权限操作

4.3.1设置权限

1.授予特定数据库的所有表的SELECT权限

 
 
GRANT SELECT ON database_name.* TO 'username'@'hostname';

2.授予特定数据库的所有表的SELECT和INSERT权限

 
 
GRANT SELECT, INSERT ON database_name.* TO 'username'@'hostname';

3.授予特定表的SELECT和INSERT权限

 
 
GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'hostname';

4.授予所有数据库的所有表的SELECT、INSERT和UPDATE权限

 
 
GRANT ALL PRIVILEGES ON *.* TO 'username'@'hostname';

5.撤销特定数据库的所有表的SELECT权限

 
 
REVOKE SELECT ON database_name.* FROM 'username'@'hostname';

6.撤销特定表的SELECT和INSERT权限

 
 
REVOKE SELECT, INSERT ON database_name.table_name FROM 'username'@'hostname';

7.授予登录和刷新权限

 
 
GRANT ALL PRIVILEGES ON *.* TO 'username'@'hostname' WITH GRANT OPTION;

8.限制特定IP地址的访问

 
 
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'specific_ip_address';

9.授予所有数据库的所有表的权限,并设置密码

 
 
GRANT ALL PRIVILEGES ON *.* TO 'username'@'hostname' IDENTIFIED BY 'password';

10.更改已存在的用户的密码

 
 
ALTER USER 'username'@'hostname' IDENTIFIED BY 'new_password';

?

五.思维导图

?

文章来源:https://blog.csdn.net/2201_75455485/article/details/135347194
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。