MySQL四大引擎&建库建表&账号管理

这篇具有很好参考价值的文章主要介绍了MySQL四大引擎&建库建表&账号管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一. 数据库四大引擎

1.1 引擎查看

1.2 InnoDB引擎

1.3 MyISAM引擎

1.4 MEMORY引擎 

1.5 Archive引擎

二. 数据库管理

2.1 元数据库

2.2 数据库的增删改查及使用

2.3 权限相关表

 三. 数据表管理

3.1 三大范式

3.2 基本数据类型

优化原则

分类

四. 数据库账号管理

4.1 通用

4.2 不同

4.2.1 MySQL5.7版本

4.2.2 MySQL8.0版本

思维导图


一. 数据库四大引擎

1.1 引擎查看

查看命令

  • SHOW ENGINES

Support字段说明

  • default为默认引擎
  • YES表示可以使用
  • NO表示不能使用

1.2 InnoDB引擎

使用场景

  • 事务性的一般使用该引擎,用途最广,如果不知道使用哪种引擎,就使用该引擎

特点

  • 修改快,支持事务(只有它支持事务)——行锁
  • 存储限制:64TG

1.3 MyISAM引擎

使用场景

  • 在开发中,数据字典、系统参数表会用到。
  • 大量查询,很少修改的时候

特点

  • 强调了快速读取操作——表锁
  • 存储限制:256TG
  • 不支持事务

1.4 MEMORY引擎 

使用场景

  • 由于易失性,用于存储在分析中产生的中间表

特点

  • 所有的数据都存储在内存中,一旦服务器重启,所有的表数据都会丢失但表结构会保存
  • 存储限制:取决于RAM(随机存储器)
  • 不支持事务

1.5 Archive引擎

使用场景

  • 在日志和数据采集时使用

特点

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

二. 数据库管理

2.1 元数据库

简介

  • 记录MySQL自身数据的数据库

元数据库分类

1、information_schema

信息数据库,保存MySQL所维护的其他数据库信息。

例如:数据库名、数据库表、表栏的数据类型与访问权限等。

2、mysql

核心数据库,主要负责存储数据库的用户,权限设置,关键字等。

mysql自己需要使用的控制和管理信息。

3、performance_schema

用于mysql的监控数据的存放。

2.2 数据库的增删改查及使用

  1. 使用:use 数据库名
  2. 增加:create database if not exists 数据库名 default charset utf8 collate utf8_general_ci;(设置字符集编码以及不区分大小写)
  3. 查询所有数据库:show database
  4. 删除:drop database 数据库名;

2.3 权限相关表

1、user表(用户层权限)

决定用户拥有哪些数据库的权限

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

决定用户对于该数据库哪些表具有操作权限

3、tables_priv表(表层权限)

决定了用户对于具体某张表具有增删改查的权限

4、columns_priv表(字段层权限)

决定了用户对于某张表的哪些字段具有操作权限

 三. 数据表管理

3.1 三大范式

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

假如说,将一个地址湖南省长沙市岳麓区浪琴湾15栋。这个时候需要用四个字段来保存这个地址:province保存省份、city保存市、area保存区域、address保存详细地址。这样就符合了第一范式。

  • 第二范式:主键约束

 也就是说一张表的每一个字段它都要依托于主键存在。例如:订单项表里有编号、单价、数量、小计。这里的小计是依托于单价和数量存在,这就违背了第二范式。

  • 第三范式:外键约束

假如说在医疗系统中,需要拿到一个患者的档案信息,那么就需要用到两张表,患者信息表和医生信息表。要在患者信息表中保存医生id,而不能直接在患者表中拿到医生姓名。

3.2 基本数据类型

优化原则

1、越小越好

  • 越小越快;
  • 拥有更小的磁盘空间、内存、CPU缓存;
  • 更少的CPU周期。

2、简单就好

  • 整型比字符串操作代价更小;
  • 用时间类型表示日期,而不是字符串。

3、尽量避免使用NULL

  • 尽量指定列为NOT NULL,特别是需要建索引的列;
  • 查询含有NULL的类,MySQL更难优化(不利于使用索引、索引统计更复杂、值比较 更复杂);
  • 用整型值而非字符串表示IP地址。

分类

1、整数

  • tinyint 8位(-128~127)
  • smallint 16位(-32768~32767)
  • mediumint 24位(-8388608~8388607)
  • int 32位 (大约正负21亿)
  • bigint 64位

2、实数(带有小数点)

  • float 4个字节
  • double 8个字节
  • decimal 最多允许65个数字(涉及到数字的运算最好使用decimal)

3、字符串

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

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

  • varchar:比定长类型节约空间;

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

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

4、text存储字符数据 & blob存储二进制数据

  • tinytext                                                 tinyblob
  • smalltext                                              smallblob
  • mediumtext                                          mediumblob
  • text                                                       blob
  • longtext                                                longblob

都为存放很大的数据而设计;

与其他数据不同,都作为独立的对象存储;

当值太大时,使用外部存储区存储。

5、日期时间

  • datetime

精度:秒;

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

范围:1001至9999年。

  • timestamp

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

占用4个字节存储空间;

范围:1970年至2038年;

与时区有关;

默认为NOT NULL;

通常尽量使用timestamp。

  • date:yyyy-MM-dd
  • time:HH:mm:ss

6、选择标识符

  • 用来进行关联操作;
  • 在其他表中作为外键;
  • 整型通常是标识符的最好选择;
  • 相关的表中使用相同的数据类型;
  • 尽量避免字符串作为标识列,尤其是随机生成的字符串(如uuid)

原因:①插入值被随机写到索引的不同位置,insert慢,容易导致页分裂,磁盘随机读取;

②逻辑上相邻的行被分布在磁盘和内存的不同地方,select慢;

③使MySQL查询缓存失效;

④如果需要存储uuid,则应将“-”去除

四. 数据库账号管理

4.1 通用

1、查询用户

select *from user;

2、查看用户常用信息

select host,user from user;

user表中host列的值的意义:

  • %                匹配所有主机
  • localhost     localhost不会被解析成IP地址,直接通过UNIXsocket连接
  • 127.0.0.1    会通过TCP/IP协议连接,并且只能在本机访问

3、删除用户

drop user 用户名;

4、权限操作

  1. 设置权限(grant):grant privileges on databasename.tablename to username@'host';  
  2. 撤销权限(revoke):revoke privileges on databasename.tablename from username@'host';        revoke只能回收grants列表中更小的权限;
  3. 查看用户权限:show grants for 用户名;

4.2 不同

4.2.1 MySQL5.7版本

1、创建用户并设置登录密码

create user 用户名 identified by '密码';

(identified by 会将纯文本密码加密作为散列值存储)

2、修改用户密码

set password for 用户名 = password('新密码');

flush privileges;

4.2.2 MySQL8.0版本

1、创建用户并设置登录密码

用户名密码创建需要分开;

create user 用户名;

2、修改用户密码

alert user 用户 identified with mysql_native_password by'123456';

思维导图

 MySQL四大引擎&建库建表&账号管理,mysql,数据库文章来源地址https://www.toymoban.com/news/detail-774156.html

到了这里,关于MySQL四大引擎&建库建表&账号管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python-Excel数据模型文档转为MySQL数据库建表语句(需要连接数据库)-工作小记

    将指定Excel文档转为create table 建表语句。该脚本适用于单一且简单的建表语句 呈现效果  代码   仅作为笔记记录,如有问题请各位大佬来指导 

    2024年02月14日
    浏览(47)
  • sql建库,建表基础操作

    当涉及到SQL建库和建表操作时,以下是一个简单的示例: 1. 建库(创建数据库) sql复制代码 CREATE DATABASE mydatabase; 上述语句将创建一个名为 mydatabase 的数据库。 2. 选择数据库 在创建表之前,需要选择要在其中创建表的数据库。 sql复制代码 USE mydatabase; 上述语句将选择 mydat

    2024年02月21日
    浏览(37)
  • Hive SQL:DDL建库 建表

    数据库 在Hive中,默认的数据库叫做default,存储数据位置位于HDFS:/user/hive/warehouse 用户自己创建的数据库存储位 :/user/hive/warehouse/database_name.db 创建数据库 COMMENT:数据库的注释说明语句 LOCATION:指定数据库在HDFS存储位置,默认/user/hive/warehouse/dbname.db WITH DBPROPERTIES:用于指定

    2024年02月11日
    浏览(46)
  • 一百九十五、MySQL——MySQL数据库创建只读权限的账号(附流程截图)

    在团队开发过程中,为了实现数据共享以及避免其他团队修改库表数据,需要提供数据库只读权限的账号,因此以MySQL数据库为例,创建MySQL数据库只读权限的账号 以用户名readyonly   密码hurys@123为例 mysql create user \\\'readyonly\\\'@\\\'%\\\' IDENTIFIED BY \\\'hurys@123\\\'; 注意:如果创建用户名时设置

    2024年02月08日
    浏览(50)
  • Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理

    准备需要: docker最新版,camunda官方建议使用容器且最好能使用k8s,而且jar包启动失败时不能停止 mysql8.0+,keycloak默认使用postgresql,我不会 提前启动好其他组件,es,tasklis,operate,zeebe,偷个懒,我使用的jar包运行,也可以容器 组件下载地址,版本8.3.4 因为容器通信的问题(应该是通信/网络的

    2024年01月19日
    浏览(53)
  • 微信小程序入门03-搭建权限系统,建库建表

    我们准备零基础搭建一个小程序,小程序分为两部分,一个是用户访问的程序,可以是小程序也可以是H5。另外一个就是管理员使用的管理后台,后台第一个要实现的就是搭建权限系统。为了搭建权限系统,我们先需要梳理概念 我们首先问一下chatgpt如何设计一个权限系统 设

    2024年02月09日
    浏览(43)
  • mysql 数据库引擎介绍

    一、数据库引擎     数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建

    2024年02月14日
    浏览(55)
  • MySQL 数据库存储引擎

    目录 一、存储引擎简介 二、MyISAM存储引擎 1、MylSAM介绍 2、MyISAM表支持3种不同的存储格式 3、MylSAM的特点 4、MyISAM使用的生产场景 三、InnoDB存储引擎 1、InnoDB介绍 2、InnoDB的特点 3、InnoDB适用生产场景 4、MyISAM和InnoDB的区别 四、查看和修改存储引擎 1、查看系统支持的存储引擎

    2023年04月25日
    浏览(57)
  • MySQL的数据库引擎介绍

        数据库引擎就是操作数据库的一段程序或程序段,用于存储、处理和保护数据的核心服务。     利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。数据库应用项目是通过数据库引擎与数据库链接的。     何为

    2024年02月06日
    浏览(50)
  • MySQL数据库之存储引擎

    MySQL中的数据用各种不下同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。 存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式。 存储引擎是

    2024年02月03日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包