MySQL-10. 存储引擎、视图、mysql管理

10.1 存储引擎

        存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。
  • 存储引擎(Storage Engines)主要包括MyISAM、innoDB、Memory等。
  • MySQL的表类型由存储引擎决定。
  • MySQL 数据表主要支持六种类型:CSV、Memory、ARCHIVE、MRG MYISAM、MYISAM、InnoBDB。根据是否支持事务,将六种类型分为两大类:”事务安全型”(transaction-safe),比如:InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe)[mysiam 和memory]。
  1. MyISAM:mysql最早提供。不支持事务和外键,但其访问速度快,对事务完整性没有要求,支持表级锁
  2. MyISAM Merge:将几个相同的MyISAM表合并为一个虚表。常应用于日志和数据仓库。
  3. InnoDB:提供了具有提交、回滚和崩溃恢复能力的事务安全。支持事务、外键和行级锁。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。也是目前MySQL默认的存储引擎。
  4. Memory(heap):使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问非常快(没有IO读写),因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦MySQL服务关闭,表中的数据就会丢失掉,表的结构还在,对临时表有用。
  5. archive:这种类型只支持select 和 insert语句,而且不支持索引。常应用于日志记录和聚合分析方面。

# 查看所有存储引擎
SHOW ENGINES;
# 修改存储引擎
ALTER TABLE 表名 ENGINE=存储引擎;

-- innodb 存储引擎,是前面使用过. 
-- 1. 支持事务 2. 支持外键 3. 支持行级锁

-- myisam 存储引擎
-- 1. 添加速度快 2. 不支持外键和事务 3. 支持表级锁
CREATE TABLE t28 (
    id INT, 
    `name` VARCHAR(32)) ENGINE MYISAM;

-- memory 存储引擎
-- 1. 数据存储在内存中[关闭了 Mysql 服务,数据丢失, 但是表结构还在]
-- 2. 执行速度很快(没有 IO 读写) 3. 默认支持索引(hash 表)
CREATE TABLE t29 (
    id INT, 
    `name` VARCHAR(32)) ENGINE MEMORY;

存储引擎的选择:

  • 如果你的应用不需要事务,处理的只是基本的CRUD操作,那么MyISAM是不二选择,速度快。
  • 如果需要支持事务,选择InnoDB
  • Memory 存储引擎就是将数据存储在内存中,由于没有磁盘I/O的等待,速度极快。但由于是内存存储引擎,所做的任何修改在服务器重启后都将消失。(经典用法:用户的在线状态) 

10.2 视图

1. 需求:

表的列信息很多,有些是重要信息,如果我们希望某个用户只能査询部分列信息(不重要),有什么办法?=>视图。即让用户查的其实是包含部分列信息的视图,而不是原始的表。

2. 视图概念:

  • 视图是一个虚拟表,其内容由查询定义,有基表创建(基表可以有多个)。
  • 同真实的表一样,视图包含列,其数据来自对应的真实表(基表)。
  • 通过视图可以修改基表数据,修改基表数据也会改变视图。
  • 创建视图后,到数据库去看,对应视图只有一个视图结构文件(形式: 视图名.frm),而没有数据文件。
  • 视图中可以再使用视图,数据仍然来自于基表。

3. 视图的使用:

# 创建视图
create view 视图名 as select 语句
CREATE VIEW emp_view01
    AS
    SELECT empno, ename, job, deptno FROM emp;

# 更新成新的视图
alter view 视图名 as select 语句 

# 查看创建视图的指令
SHOW CREATE VIEW 视图名

# 删除视图
drop view 视图名1,视图名2;
# 对emp、dept、salgrade三张表.创建一个视图
# 显示雇员编号,雇员名,雇员部门名称和薪水级别
CREATE VIEW emp_view03
    AS
    SELECT empno, ename, dname, grade
        FROM emp, dept, salgrade
        WHERE emp.deptno = dept.deptno AND (sal BETWEEN losal AND hisal)

10.3 mysql用户管理

1. Mysql用户

mysql中的用户,都存储在系统数据库mysql中 user 表中。
不同的数据库用户,登录到DBMS,根据相应的权限,可以操作的数据库和数据对象不相同。
可以通过授权和回收使不同用户操作其他用户的数据库。
其中user表的重要字段说明:
host: 允许登录的“位置”,localhost表示该用户只允许本机登录,也可以指定ip地址,比如:192.168.1.100
user:用户名
authentication_string:密码,是通过mysql的password()函数加密之后的密码。
# 创建用户,同时指定密码
create user '用户名’@’允许登录位置’ identified by '密码';
-- 创建用户 shunping 密码 123 , 从本地登录
CREATE USER 'shunping'@'localhost' IDENTIFIED BY '123'

# 删除用户
drop user '用户名’@'允许登录位置';

# 用户修改密码
# 修改自己的密码:
set password = password('密码');
# 修改他人的密码(需要有修改用户密码权限)
set password for'用户名'@'登录位置’ = password('密码');
-- 修改 shunping 的密码为 abc
SET PASSWORD FOR 'shunping'@'localhost' = PASSWORD('abc');
在创建用户的时候,如果不指定@’允许登录位置’, 则为% , %表示所有 IP 都有连接权限
-- create user xxx;
CREATE USER jack
也可以这样指定IP段
-- create user 'xxx'@'192.168.1.%' 表示 xxx 用户在 192.168.1.*的 ip 可以登录 mysql
CREATE USER 'smith'@'192.168.1.%;
在删除用户的时候,如果 host 不是 %, 需要明确指定 '用户'@'host 值'
DROP USER jack -- 默认就是 DROP USER 'jack'@'%' 
DROP USER 'smith'@'192.168.1.%

 2. mysql中的权限管理:授权和回收

权限列表:

2.1 授权

# 给用户授权
grant 权限列表 on 库.对象名 to '用户名’@’登录位置';
grant 权限列表 on 库.对象名 to '用户名’@’登录位置' identified by '密码';

-- 给 shunping 分配查看 news 表和 添加 news 的权限
GRANT SELECT , INSERT
    ON testdb.news
    TO 'shunping'@'localhost'
  • 权限列表,多个权限用逗号分开
  • 库.对象名如果写成:
         (1) *.*:代表本系统中的所有数据库的所有对象(表,视图,存储过程)
        (2) 库.*:表示某个数据库中的所有数据对象(表,视图,存储过程等)
  • identified by可以省略,也可以写出:
        (1) 如果用户存在,授权的同时修改该用户的密码
        (2) 如果该用户不存在,创建该用户同时授权

2.2 回收用户授权

revoke 权限列表 on 库.对象名 from'用户名"@"登录位置';

2.3 权限生效指令

 如果权限没有生效执行:
FLUSH PRIVILEGES;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/528406.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于GNSS硬件延迟初步学习,电离层提取

1、卫星端偏差分为频间和频内偏差(inter or intra frequency),下面以GPS的C1C和C2W组合为例分析对PPP解算的影响: 如果不改正卫星端的inter-frequency(即:C1C-C1W)偏差(因为每颗卫星…

基于springboot实现校园资料分享平台系统项目【项目源码+论文说明】

基于springboot实现校园资料分享平台系统演示 摘要 随着信息互联网购物的飞速发展,国内放开了自媒体的政策,一般企业都开始开发属于自己内容分发平台的网站。本文介绍了校园资料分享平台的开发全过程。通过分析企业对于校园资料分享平台的需求&#xff…

SSM项目转Springboot项目

SSM项目转Springboot项目 由于几年前写的一个ssm项目想转成springboot项目,所以今天倒腾了一下。 最近有人需要毕业设计转换一下,所以我有时间的话可以有偿帮忙转换,需要的私信我或+v:Arousala_ 首先创建一个新的spr…

快速恢复1对共阴极二极管ER1006F 特点与应用,你必须看的好文章~

ER1006F是一款二极管,ER1006F是款正向电流为 10A,反向电压为600V的二极管。它的正向压降为1.05V,反向电流为10μA。这些参数使得ER1006F在很多应用中都非常适用。 首先,正向电流是指电流从二极管的阳极流向阴极的电流。ER1006F的正…

操作系统知识

根据希赛相关视频课程汇总整理而成,个人笔记,仅供参考。 操作系统概述 *进程管理 进程:程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。由程序块、进程控制块(PCB)和数据块三…

龙蜥社区「人人都可以参与开源」——参与心得

一、初识龙蜥 参加龙蜥社区的体验,犹如走进了一个满载知识宝藏的科技殿堂,它不仅集结了国内外对开源操作系统技术抱有热忱的高手,更是一个不断孕育创新理念与实践成果的孵化器。在这里,每一刻都充满启迪,每一步都伴随…

AI创作出来的图,有没有版权?总结了三派观点,你觉得呢?

关于这个问题分成了三派,老铁们可以忽略图片,认真思考版权这个问题。 一、无版权派 因为按照我国目前对版权的定义著作权:是指自然人、法人或者其他组织对文学、艺术和科学作品享有的财产权利和精神权利的总称。那么AI既不属于自然人也不属…

2月珍珠饰品电商数据分析:价格翻倍,销售额暴增140%!

珍珠饰品这两年受到国内消费者的追捧,这股热潮随着电商直播的快速发展延续至今。与此同时,年轻人群体正成为珍珠消费的主力军,他们在各大直播间频繁亮相,以实际购买力展现了对珍珠饰品的热爱与追捧。 今年2月份,珍珠饰…

从入门到精通:系统性学习Linux虚拟网络设备的全面指南

学习一个从未接触过的Linux虚拟网络设备是一个分阶段的过程,从最初的认识到最后的精通,需要系统性和逐步深入的学习策略。以下是一个全面的指南📚,旨在帮助初学者通过多角度分析🔍,一步一步地学习和掌握新的…

GlusterFS分布式文件系统

一、GlusterFS简介 GlusterFS 是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性 二、GlusterFS特点 2.1 扩展性和高性能 Glu…

【随笔】Git 基础篇 -- 分支与合并 git merge(九)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

什么是 Python 解释器

我们编写程序代码,就是要 让计算机 按照我们的想法 去做事 。 程序代码是用编程语言编写的,而 Python 语言, 是计算机硬件(主要是 CPU)听不懂的语言。 计算机 CPU 只能听懂 机器指令。 所以,我们需要一个…

(学习日记)2024.04.08:UCOSIII第三十六节:事件

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

本地MinIO存储服务通过Java程序结合cpolar实现远程连接上传文件

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 前言 MinIO是一款高性能、分布式的对象存储系统,它可以100%的运行在标准硬件上,即X86等…

Linux shell编程学习笔记46:awk命令的由来、功能、格式、选项说明、版权、版本

0 前言 在编写Linux Shell脚本的过程中,我们经常要对Linux命令执行的结果进行分析和提取,Linux也在文本分析和提取这方面提供了不少的命令。比如我们之前研究过的cut命令。 Linux shell编程学习笔记43:cut命令https://blog.csdn.net/Purple…

基于R语言的影视评分影响因素实证分析(二)

在某网站抓取了百条数据,试图通过对这些数据的分析,找出电影受欢迎的因素。本案例共获取100条数据。数据详情如下: 1.数据处理及变量描述 首先对数据进行筛选处理,将不需要或者缺失变量进行剔除。 电影类型只保留第一个选项,即《唐人街探案2》的电影类型有喜剧,动作,犯罪…

transformer上手(2) —— 注意力机制

自从 2017 年 Google 发布《Attention is All You Need》之后,各种基于 Transformer 的模型和方法层出不穷。尤其是 2018 年,OpenAI 发布的 GPT 和 Google 发布的 BERT 模型在几乎所有 NLP 任务上都取得了远超先前最强基准的性能,将 Transfor…

苹果手机短信删除了怎么恢复?别急,教你4招恢复技巧

在日常使用中,由于误操作或其他原因,我们可能会不小心删除了重要的短信,这时就需要寻找合适的方法来恢复它们。短信删除了怎么恢复?请接着往下看! 首先,不必过于紧张,因为苹果手机提供了一些功…

二:什么是RocketMQ

RocketMQ是阿里开源的消息中间件产品,纯Java开发,具有高吞吐量、高可用性、适合大规模分布式系统应用的特点,性能强劲(零拷贝技术),支持海量堆积,在阿里内部进行大规模使用,适合在互联网与高并发系统中应用。 官方文档&#xff1a…

深入C语言内存:数据在内存中的存储

一、数据类型 1. unsigned:无符号数类型 当一个数是无符号类型时,那么其最高位的1或0,和其它位一样,用来表示该数的大小。 2.signed:有符号数类型 当一个数是有符号类型时,最高数称为“符号位”。符号位为1…