20 MySQL(下)
文章目录
- 视图
- 视图是什么
- 定义视图
- 查看视图
- 删除视图
- 视图的作用
- 事务
- 事务的使用
- 索引
- 查询索引
- 创建索引
- 删除索引
- 聚集索引和非聚集索引
- 影响
- 账户管理(了解非DBA)
- 授予权限 与 账户的相关操作
- MySQL的主从配置
视图
视图是什么
通俗的讲,视图就是一条 SELECT 语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条 SQL 查询语句上。
视图是对若干张基本表的引用,一张虚表(也是一张表,不过是一张特殊的表),查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);方便操作,特别是查询操作,减少复杂的 SQL
还有就是采用视图之后,可以做到让后端程序员无法进行修改相关数据,只能进行查询,就是有一个安全性的考量,并且代码写的也不会那么复杂。
定义视图
create view 视图名称 as select 语句;
给个例子:
create view goods_view as (select goods.id as id,goods.name as name,goods_cates.name as type from goods left join goods_cates on goods_cates.id=goods.cate_id)
查看视图
select * from 视图名
删除视图
drop view 视图名称
视图的作用
- 提高了重用性,就像一个函数
- 对数据库重构,却不影响程序的运行
- 提高了安全性能,可以对不同的用户
- 让数据更加清晰
事务
事务广泛的运用于订单系统、银行系统等多种场景
例如:
A 用户和 B 用户是银行的储户,现在 A 要给 B 转账 500 元,那么需要做以下几件事:
- 检查 A 的账户余额>500 元;
- A 账户中扣除 500 元;
- B 账户中增加 500 元;
正常的流程走下来,A 账户扣了 500,B 账户加了 500,皆大欢喜。
那如果 A 账户扣了钱之后,系统出故障了呢?A 白白损失了 500,而 B 也没有收到本该属于他的 500。
以上的案例中,隐藏着一个前提条件:A 扣钱和 B 加钱,要么同时成功,要么同时失败。事务的需求就在于此,所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。所以,应该把他们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性
所以就引入了事务
事务的使用
开启事务,命令如下(开启事务后执行修改命令,变更会维护到本地缓存中,而不维护到物理表中)
begin; 或者 start transaction;提交事务,命令如下(将缓存中的数据变更维护到物理表中)
commit;回滚事务,命令如下( 放弃缓存中变更的数据)
rollback;
例子:
# 开启事务
begin;
# 查询people1是否有500元
select money from bank where name='people1';
# people1转300元
update bank set money=money-300 where name='people1'
# people2收到300元
update bank set money=money+300 where name='people2'执行结束后,进行查询数据库,这些数据是否都是正确的,正确的就可以:
commit;如果是错误的:
rollback;
关于事务主要应用于高并发的情况下,有时候某线程会突然死掉,这种情况下就需要使用这种方式,还有就是在没有commit的时候,你新建查询,去查询你操作的表,你的所有操作都是没有执行的,而在本张查询中(使用了begin的),你会发现你的查询和你的操作相关,减了就是减了(但实际上没减)
索引
当数据库中数据量很大时,查找数据会变得很慢,优化方案:索引----就是数据结构(有序),B+树索引(一般都是B+),哈希索引
查询索引
show index from 表名;
创建索引
create index 索引名称 on 表名(字段名称(长度))
如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致
创建索引
create index name1 on goods(name(255));创建唯一索引,代表的就是这个索引所对应的那个东西必须是唯一的,比如这边就是price再表中必须是唯一的
create unique index price1 on goods(price);创建联合索引 实际上就是我们查询的时候不是where 可能条件经常有 where and 两种条件相结合的情况,这种情况下就需要联合索引create index name2 on goods(name(255),price);
删除索引
drop index 索引名称 on 表名;
聚集索引和非聚集索引
聚集索引实际上就是在sql进行索引存储的时候,他会把数据(data)也存到和索引一起的位置,而非聚集索引就是数据(data)存储的仅仅是表明是这个数据的标记,然后会再通过这个标记去寻找对应的数据
所以说一张表实际上对应的就只有一个聚集索引,也绝大多数都是利用主键进行索引区分,然后再MySQL中,其他新建的索引也就是非聚集索引下存储的数据都是对应的id,然后再通过id再去寻找对应的数据。
影响
- 提高删除 查询 修改的速度。
- 减少新增的速度,因为新增的时候需要多经过索引,然后再插入数据。
账户管理(了解非DBA)
- 在生产环境下操作数据库时,绝对不可以使用 root 账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的 crud
- MySQL 账户体系:根据账户所具有的权限的不同,MySQL 的账户可以分为以下几种:
账户 | 说明 |
---|---|
服务实例级账号 | 启动了一个 mysqld,即为一个数据库实例;如果某用户如 root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表 |
数据库级别账号 | 对特定数据库执行增删改查的所有操作 |
数据表级别账号 | 对特定表执行增删改查等所有操作 |
字段级别的权限 | 对某些表的特定字段进行操作 |
存储程序级别的账号 | 对存储程序进行增删改查的操作 |
- 账户的操作主要包括创建账户、删除账户、修改密码、授权权限等
- 进行账户操作时,需要使用 root 账户登录,这个账户拥有最高的实例级权限
- 通常都使用数据库级操作权限
授予权限 与 账户的相关操作
参考连接
笔者这边数据库出现问题,没实操过,所以没总结OxO 尴尬
MySQL的主从配置
相关链接
实际上所做的事情就是读写分离,比如一台机器专门用来读数据,一台机器专门用来写数据,然后读数据的机器所作的事情实际上是隔一段时间,去写机器那边进行到处bin.log,也就是二进制文件(sql底层引擎使用的东西),然后进行同步数据库。
主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。
使用主从同步的好处:
- 通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能。
- 提高数据安全,因为数据已复制到从服务器,从服务器可以终止复制进程,所以,可以在从服务器上备份而不破坏主服务器相应数据
- 在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能
相关文章:

20 MySQL(下)
文章目录 视图视图是什么定义视图查看视图删除视图视图的作用 事务事务的使用 索引查询索引创建索引删除索引聚集索引和非聚集索引影响 账户管理(了解非DBA)授予权限 与 账户的相关操作 MySQL的主从配置 视图 视图是什么 通俗的讲,视图就是…...

测试圈的网红工具:Jmeter到底难在哪里?!
雨果的公司最近推出了一款在线购物应用,吸引了大量用户。然而随着用户数量的增加,应用的性能开始出现问题。用户抱怨说购物过程中页面加载缓慢,甚至有时候无法完成订单,小欧作为负责人员迫切需要找到解决方案。 在学习JMeter之前…...

深度学习10:Attention 机制
目录 Attention 的本质是什么 Attention 的3大优点 Attention 的原理 Attention 的 N 种类型 Attention 的本质是什么 Attention(注意力)机制如果浅层的理解,跟他的名字非常匹配。他的核心逻辑就是「从关注全部到关注重点」。 Attention…...

简单着色器编写(中下)
这篇我们来介绍另一部分函数。 static unsigned int CreateShader(const std::string& vertexShader, const std::string& fragmentShader) {unsigned int program glCreateProgram();unsigned int vs CompileShader(GL_VERTEX_SHADER,vertexShader);unsigned int f…...

matlab使用教程(24)—常微分方程(ODE)求解器
1.常微分方程 常微分方程 (ODE) 包含与一个自变量 t(通常称为时间)相关的因变量 y 的一个或多个导数。此处用于表示 y 关于 t 的导数的表示法对于一阶导数为 y ′ ,对于二阶导数为 y ′′,依此类推。ODE 的阶数等于 y 在方程中…...

企业级数据共享规模化模式
数据共享正在成为企业数据战略的重要元素。对于公司而言,Amazon Data Exchange 这样的亚马逊云科技服务提供了与其他公司共享增值数据或从这些数据获利的途径。一些企业希望有一个数据共享平台,他们可以在该平台上建立协作和战略方法,在封闭、…...

Web服务器-Tomcat详细原理与实现
Tomcat 安装与使用 :MAC 安装配置使用Tomcat - 掘金 安装后本计算机就相当于一台服务器了!!! 方式一:使用本地安装的Tomcat 1、将项目文件移动到Tomcat的webapps目录下。 2、启动Tomcat 3、在浏览器输入想要加载的…...

ARM处理器核心概述
一、基于ARM处理器的嵌入式系统 ARM核深度嵌入SOC中,通过JTAG口进行外部调试。计通常既有外部内存又有内部内存,从而支持不通的内存宽度、速度和大小。一般会包含一个中断控制器。可能包含一些Primece外设,需要从ARM公司取得授权。总线使用A…...

万户协同办公平台 ezoffice存在未授权访问漏洞 附POC
文章目录 万户协同办公平台 ezoffice存在未授权访问漏洞 附POC1. 万户协同办公平台 ezoffice简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见8.往期回顾 万户协同办公平台 ezoffice存在未授权访问漏洞 附POC 免责声明:请勿利用文章内的相…...

使用ctcloss训练矩阵生成目标字符串
首先我们需要明确 c t c l o s s ctcloss ctcloss是用来做什么的。比如说要生成的目标字符串长度为 l l l,而这个字符串包含 s s s个字符,字符串允许的最大长度为 L L L,这里认为一个位置是一个时间步,就是一拍,记为 T…...

驱动 - 20230829
练习 基于platform实现 在根节点下,增加设备树 myplatform {compatible"hqyj,myplatform";interrupts-extended<&gpiof 9 0>, <&gpiof 7 0>, <&gpiof 8 0>;led1-gpio<&gpioe 10 0>;reg<0x12345678 59>;}…...

数组(个人学习笔记黑马学习)
一维数组 1、定义方式 #include <iostream> using namespace std;int main() {//三种定义方式//1.int arr[5];arr[0] 10;arr[1] 20;arr[2] 30;arr[3] 40;arr[4] 50;//访问数据元素/*cout << arr[0] << endl;cout << arr[1] << endl;cout &l…...

layui表格事件分析实例
在 layui 的表格组件中,区分表头事件和行内事件是通过事件类型(toolbar 和 tool)以及 lay-filter 值来实现的。 我们有一个表格,其中有一个工具栏按钮和操作按钮。我们将使用 layui 的 table 组件来处理这些事件。 HTML 结构&…...

Android NDK JNI与Java的相互调用
一、Jni调用Java代码 jni可以调用java中的方法和java中的成员变量,因此JNIEnv定义了一系列的方法来帮助我们调用java的方法和成员变量。 以上就是jni调用java类的大部分方法,如果是静态的成员变量和静态方法,可以使用***GetStaticMethodID、CallStaticObjectMethod等***。就…...

装备制造企业如何执行精益管理?
导 读 ( 文/ 2358 ) 精益管理是一种以提高效率、降低成本和优化流程为目标的管理方法。装备制造行业具备人工参与度高,产成品价值高,质量要求高的特点。 在装备制造企业中实施精益管理可以帮助企业提高竞争力、提升生产效率并提供高质量的产品。本文将…...

PHP8中自定义函数-PHP8知识详解
1、什么是函数? 函数,在英文中的单词是function,这个词语有功能的意思,也就是说,使用函数就是在编程的过程中,实现一定的功能。即函数就是实现一定功能的一段特定代码。 在前面的教学中,我们已…...

虚拟化技术:云计算发展的核心驱动力
文章目录 虚拟化技术的概念和作用虚拟化技术的优势虚拟化技术对未来发展的影响结论 🎉欢迎来到AIGC人工智能专栏~虚拟化技术:云计算发展的核心驱动力 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博客🎈该系…...

光伏+旅游景区
传统化石燃料可开发量逐渐减少,并且对环境造成的危害日益突出。全世界都把目光投向了可再生能源,希望可再生能源能够改变人类的能源结构。丰富的太阳能取之不尽、用之不竭,同时对环境没有影响,光伏发电是近些年来发展最快…...

手搓文本向量数据库(自然语言搜索生成模型)
import paddle import jieba import pandas as pd import numpy as np import os from glob import glob from multiprocessing import Process, Manager, freeze_supportfrom tqdm import tqdm# 首先 确定的是输出的时候一定要使用pd.to_pickle() pd.read_pickle() # 计算的时…...

EVO大赛是什么
价格是你所付出的东西,而价值是你得到的东西 EVO大赛是什么? “EVO”大赛全称“Evolution Championship Series”,是北美最高规格格斗游戏比赛,大赛正式更名后已经连续举办12年,是全世界最大规模的格斗游戏赛事。常见…...

linux中使用clash代理
本机环境:ubuntu16 安装代理工具(这里使用clash) 可以手动下载解压,下载地址:https://github.com/Dreamacro/clash 也可以直接使用命令行,演示如下: userlocalhost:~$ curl https://glados.r…...

Kafka3.0.0版本——Follower故障处理细节原理
目录 一、服务器信息二、服务器基本信息及相关概念2.1、服务器基本信息2.2、LEO的概念2.3、HW的概念 三、Follower故障处理细节 一、服务器信息 三台服务器 原始服务器名称原始服务器ip节点centos7虚拟机1192.168.136.27broker0centos7虚拟机2192.168.136.28broker1centos7虚拟…...

13.redis集群、主从复制、哨兵
1.redis主从复制 主从复制是指将一台redis服务器(主节点-master)的数据复制到其他的redis服务器(从节点-slave),默认每台redis服务器都是主节点,每个主节点可以有多个或没有从节点,但一个从节点…...

linux字符串处理
目录 1 C 截取字符串,截取两个子串中间的字符串2 获取该字符串后面的字符串用 strstr() 函数查找需要提取的特定字符串,然后通过指针运算获取该字符串后面的字符串用 strtok() 函数分割字符串,找到需要提取的特定字符串后,调用 strtok() 传入…...

Nginx入门——Nginx的docker版本和windows版本安装和使用 代理的概念 负载分配策略
目录 引出nginx是啥正向代理和反向代理正向代理反向代理 nginx的安装使用Docker版本的nginx安装下载创建挂载文件获取配置文件创建docker容器拷贝容器中的配置文件删除容器 创建运行容器开放端口进行代理和测试 Windows版本的使用反向代理多个端口运行日志查看启动关闭重启 负载…...

Zebec Protocol:模块化 L3 链 Nautilus Chain,深度拓展流支付体系
过去三十年间,全球金融科技领域已经成熟并迅速增长,主要归功于不同的数字支付媒介的出现。然而,由于交易延迟、高额转账费用等问题愈发突出,更高效、更安全、更易访问的支付系统成为新的刚需。 此前,咨询巨头麦肯锡的一…...

Oracle-rolling upgrade升级19c
前言: 本文主要描述Oracle11g升19c rolling upgrade升级测试,通过逻辑DGautoupgrade方式实现rolling upgrade,从而达到在较少停机时间内完成Oracle11g升级到19c的目标 升级介绍: 升级技术: rolling upgrade轮询升级,通过采用跨版…...

Spring IOC详解
Spring 笔记 官网:https://spring.io/ 核心功能:当你的项目启动的时候,自动的将当前项目的各种 Bean 都自动的注册到 Spring 容器中,然后在项目的其他地方,如果需要用到这些 Bean,直接去 Spring 容器中查…...

Unity——DOTween插件使用方法简介
缓动动画既是一种编程技术,也是一种动画的设计思路。从设计角度来看,可以有以下描述 事先设计很多基本的动画样式,如移动、缩放、旋转、变色和弹跳等。但这些动画都以抽象方式表示,一般封装为程序函数动画的参数可以在使用时指定&…...

数据库——Redis 单线程模型详解
文章目录 Redis 基于 Reactor 模式来设计开发了自己的一套高效的事件处理模型 (Netty 的线程模型也基于 Reactor 模式,Reactor 模式不愧是高性能 IO 的基石),这套事件处理模型对应的是 Redis 中的文件事件处理器(file …...