数据库
数据库
浩丶木
这个作者很懒,什么都没留下…
展开
-
高性能数据库
pxc集群:每个节点都必须同步接受数据,适合保存强一致性数据。rp集群:每个节点时异步接受数据的,不适合保存强一致性数据。只要一个结点成功接受数据,那么事务就算成功了,如果由于网络原因,读写分离的情况下,就可能导致扣款成功,但是订单状态同步失败的问题。如果一个请求既操作了pxc又操作了rp的数据,这种夸集群的事务就很难实现。...原创 2021-11-20 14:29:26 · 839 阅读 · 0 评论 -
SPU与SKU
SPU全称为standard product unit,是标准产品单位。spu描述一个产品的各种特性。SPU 是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述 了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个 SPU。例如:ThinkPad:产品有各种的销售方案,4K 屏、黑色、32G 内存等;商品小米 9:产品也有各种的销售方案,黑色、128g、红色;商品技嘉 1060 显卡产品有 2G、4G、6G 版本;商品spu与商家,颜色,套餐等等没有关原创 2021-11-19 10:40:47 · 254 阅读 · 0 评论 -
mysql事务机制
mysql一共有5种日志,其中只有redo日志和undo日志与事务相关先将数据复制到undo日志当中,修改成功之后,记录在redo日志当中,操作没有问题之后,则把redo日志中的数据同步到数据库中。就算系统重启,还有redo日志,所以数据一般不会丢失。事务的ACID属性A:原子性:一个事务中的所有操作要么全部成功,要么全部失败。事务执行后不允许停留在某个状态。先拷贝数据到undo中,执行成功之后,写入redo中,提交事务,把redo中的数据同步到数据库中。如果要回滚,则把undo与redo中的数据原创 2021-11-19 10:34:14 · 556 阅读 · 0 评论 -
mysql服务器处理客户端请求
1.连接管理客户端进程可以采用tcp/ip或者命名管道或者共享内存等方式与服务器进程建立连接。服务器进程会创建一个线程专门处理与这个客户端的交互。当客户端与该服务器断开之后,不会立即撤销线程,只会把他缓存起来等待下一个客户端请求连接的时候,将其分配给该客户端。2.解析与优化1.查询缓存。2.语法解析:如果查询缓存没有命中相应的语句,那么服务器将会对该文本语句进行分析,判断是否正确,然后才从文本中将要查询的表,个中查询条件都提取出来放到mysql服务器内部使用的一些数据结构上。3.查询优化:我们自己原创 2021-10-16 09:43:15 · 431 阅读 · 0 评论 -
通配符过滤查询
LIKE操作符与之相匹配的通配符1.百分号%通配符%表示任何字符出现的任意次数2.下划线_通配符只匹配单个字符而不是多个字符注意事项:不要过度使用通配符。它会降低搜索性能,增加性能负担。在确实需要使用通配符的时候,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。要自习注意通配符的位置,如果放错地方,可能不会返回想要的数据。...原创 2021-09-20 20:57:45 · 136 阅读 · 1 评论 -
用in操作符的理由
1.在使用长的合法选项清单的时候,in操作符的语法更清楚且更加直观2.在使用in的时候,计算的次序更容易管理3.in操作符一般比or操作符清单执行得更快4.in的最大优点是可以包含其他的select语句,使得能够更动态地建立where子句。...原创 2021-09-20 20:38:01 · 66 阅读 · 0 评论 -
数据库连接池
数据库连接池在程序初始化时创建一定数量的数据库连接对象并将其保存在一块内存区当中,允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接以避免因为没有释放数据库连接而引起的数据库连接遗漏。即在程序初始化的时候创建一定数量的数据库连接,用完放回,下一个接着用。连接池参数初始连接数,最小链接,最大连接,最大空闲时间这些参数保证访问数据库的数量在一定的可控范围,防止系统崩溃,同时减小了频繁连接数据库所造成的耗时操作,提升性能常见数据库连接池DBCP C原创 2021-05-01 09:20:00 · 108 阅读 · 0 评论 -
数据库常用三大范式
数据库常用三大范式第一范式:属性的原子性当关系模式r的所有属性都不能分解为更基本的数据单位的时候,则满足第一范式。1.每一列属性都是不可再分的属性值,确保每一列的原子性2.两列的属性相近或者一样,尽量合并为一样的属性,确保不产生冗杂数据改进后第二范式:属性完全依赖于主键满足1NF之后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情;如果不满足第二范式就可能会造成插入异常删除异常修改异常第三范式:消除传递依赖数据不能存在传递关系原创 2021-04-16 22:00:44 · 253 阅读 · 0 评论 -
sql学习笔记-视图
视图含义:本身是一个虚拟表,它的数据是通过表动态生成的。好处:1.简化sql语句2.提高了sql 的重用性3.保护基表的数据,提高了安全性创建create view 视图名as查询语句修改方式一:create or replace view 视图名as查询语句方式二alter view 视图名as查询语句删除drop view 视图名查看desc 视图名或者show create view 视图名使用1.插入 insert2.修改 update3.删除原创 2021-02-27 10:17:24 · 96 阅读 · 0 评论 -
sql学习笔记-事务
事务的特性:ACID原子性:一个事物不可再分割,要么都执行要么都不执行一致性:一个事务的执行会使数据从一个一致状态切换到另一个一致状态隔离性:一个事务的执行不受其他事务的干扰持久性:一个事务一旦提交,则会永久的改变数据库的数据事务的创建:事务没有明显的开启和结束的标记开启事务:set autocommit=0start transaction编写事务结束事务commit;或者rollback对于同时运行的多个事务,当这些事务访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会原创 2021-02-15 22:13:15 · 152 阅读 · 0 评论 -
sql学习笔记-约束
含义:一种限制,用于限制表中的数据 ,为了保证表中的数据的准确和可靠性。分类:六大约束not null 非空,用于保证该字段的值不能为空default:默认,用于保证该字段有默认值primary key :主键,用于保证该字段的值具有唯一性,并且非空unique 唯一,用于保证该字段的值具有唯一性,可以为空check 检查约束foreign key 外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值,在从表添加外键约束,用于引用主表中某列的值创建表时添加约束1.添加列原创 2021-02-15 10:41:46 · 113 阅读 · 0 评论 -
sql学习笔记-数据类型
常见的数据类型数值型:整型小数:定点数浮点数字符型较短的文本,char,varchar较长的文本,text,blob(较长的二进制数据)一,整型分类:tinyint,smallint,mediumint,int,bigint1 2 3 4 8特点1.如果不设置无符号还是有符号,默认是有符号的,如果想设置无符号,需要添加unsigned关键字2.如果插入的数值超出了整型的范围,会报out of range 异常,并且插入临界值3.如果不设置长度,会有原创 2021-02-14 09:10:42 · 89 阅读 · 0 评论 -
sql学习笔记-库,表的管理
库的管理1.库的创建create database 【if not exists】库名2.库的修改rename database 原库名 to 新库名3.库的删除drop database if exists 库名表的管理1.表的创建语法create table 表名(列名 列的类型(长度)列名 列的类型(长度)…)2.表的修改1.修改列名alter table 表名 change column 原名 新名 列的类型2.修改类型或者约束alter table 表名 mo原创 2021-02-12 22:16:09 · 69 阅读 · 0 评论 -
sql学习笔记-删除语句
方式一:delete语法1.单表的删除delete from 表名 where 筛选条件2.多表的删除方式二:truncate语法truncate table 表名:区别:1.delete可以加where条件,trunate不能加2.truncate删除,效率高一点3.假如要删除的表中有自增长列如果用delete删除后,在插入数据,自增长列的值从断点开始而truncate删除后,在插入数据,自增长列的值从1开始。4.truncate没有返回值,而delete的删除有返回值5.t原创 2021-02-11 08:25:57 · 362 阅读 · 0 评论 -
sql学习笔记-插入和修改
增加语法:方式一:insert into 表名()values()支持插入多行支持子查询方式二:insert into 表名set 列名=值,列名=值…注意事项1.插入的值的类型要与列的类型一致或者兼容2.不可以为null的列必须插入值。可以为null的,在输入值的时候可以直接输入null或者不用输入3.列的顺序可以调换4.列数和值的个数必须一致修改1.修改单表的记录语法update 表名set 列=新值,2.修改多表的记录...原创 2021-02-10 23:10:46 · 152 阅读 · 0 评论 -
sql学习笔记-联合查询
语法:查询语句1union查询语句2…应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时。特点:要求多条查询语句的查询列数是一致的要求多条查询语句的查询的每一列的类型和顺序最好一致union关键字默认去重,如果使用union all 可以包含重复项...原创 2021-02-10 10:42:02 · 52 阅读 · 0 评论 -
数据库学习笔记-子查询
概念:出现在其他语句内部的select语句,称为子查询和内查询内部嵌套其他select语句的查询,称为外查询或者主查询分类:按子查询出现的位置:select后面:仅仅支持标量子查询from后面:支持表子查询☆where或having后面:标量子查询,列子查询,行子查询exists后面:表子查询按结果集的行列数不同标量子查询(结果集只有一行一列)列子查询(结果集只有一列多行)行子查询(结果集有一行多列)表子查询(结果集一般为多行多列)where或having后面特点:1原创 2021-02-09 10:49:55 · 140 阅读 · 0 评论 -
sql学习笔记-连接查询
连接查询含义:又称为多表查询,当查询的字段来自于多个表的时候,就会用到连接查询笛卡尔乘积现象:表1有m行,表2有n行,结果=m*n行发生原因:没有有效的连接条件如何避免:添加有效的连接条件分类:按年代分类:sql92 仅仅支持内连接sql99 支持内连接+外连接(左外和右外)+交叉连接按功能分类内连接等值连接语法:selectfrominner join xxx on 连接条件多表等值连接的结果为多表的交集部分n表连接,至少需要n-1个连接条件多表的顺序没有要求一般需原创 2021-02-08 09:10:12 · 70 阅读 · 0 评论 -
sql学习笔记-分组查询
分组查询的语法select 分组函数,列(要求出现在group by的后面)from 表【where 筛选条件】group by 分组的列表【order by 子句】注意:查询列表必须特殊,要求是分组函数和group by 后出现的字段特点:分组查询中的筛选条件分为两类分组前筛选 其数据源是原始表 位置在group by 子句的前面 关键字为where分组后筛选 其数据源是分组后的结果集 位置在group by 子句的后面 关键字为havinggroup by 子句支持单个字段分组原创 2021-01-30 09:10:15 · 111 阅读 · 0 评论 -
sql学习笔记-常见函数
概念:类似于java的方法,将一组逻辑语句封装在方法体重,对外暴露方法名。好处1.隐藏了实现的细节 2.提高了代码的重用性调用:select 函数名(实参列表) 比如【from表】;特点:叫什么(函数名)干什么(函数功能)分类1.单行函数如concat,length,ifnull等等2.分组函数功能:做统计使用,又称为统计函数,聚合函数,组函数一,字符函数二,数学函数三 日期函数四.流程控制函数...原创 2021-01-24 11:13:29 · 84 阅读 · 0 评论 -
sql学习笔记——排序查询
排序查询语法select 查询列表from 表(where 筛选条件)order by 排序列表 (desc(从高到低排序)/asc(从低到高排序))如果不写,默认的是升序(asc)order by子句中可以支持单个字段,多个字段,表达式,函数,别名。order by子句一般是放在查询语句的最后面,limit子句除外...原创 2021-01-24 09:45:22 · 83 阅读 · 0 评论 -
sql学习笔记-基础查询
基础操作基础查询select 查询列表 from 表名;类似于java中的打印sout特点:查询列表可以是:表中的字段,常量值,表达式,函数。查询的结果是一个虚拟的表格。查询表中的单个字段SELECT xxx FROM xxx;查询表中的多个字段SELECT xxx,xxxx,xxx FROM xxx;查询表中的所有字段SELECT xxxxxxxxxxxxxxFROMxxx;或者SELECT *FROM xxxx;在查询某一个表的时候,尽量在查询之前进行标示USE原创 2021-01-22 09:14:58 · 89 阅读 · 0 评论 -
数据库学习笔记-数据库概念
数据库的概念DB数据库(database):存储数据的仓库,它保存了一系列有组织的数据DBMS数据库管理系统。数据库是通过DBMS创建和操作的容器SQL结构化查询语言:专门用来和数据库通信的语言数据库的特点1.将数据放到表中,再将表放到库中。2.一个数据库可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。3.表具有一些特性,这些特性定义了数据在表中如何存储。4.表由列组成,也称为字段。所有表都是由一个或者多个列组成的。5.表中的数据是按行存储的。...原创 2021-01-14 21:58:15 · 57 阅读 · 0 评论