数据库知识点
文章平均质量分 67
yang_zzu
这个作者很懒,什么都没留下…
展开
-
空值 和 null
打个比方:空值 '' : 杯子是真空的NULL : 杯子是装满空气的NOT NULL 的字段是不能插入“NULL”的,只能插入“空值”NULL 其实并不是空值,而是要占用空间,mysql在进行比较的时候,NULL 会参与字段比较,所以对效率有一部分影响。is not NULL 不能排除 ‘’ 空值<> 能够排除 ‘’ 空值1、在进行count()统计某列的记录数的时候,如果采用的NULL值,系统会自动忽略掉,但是空值是会进行统计到其中的。...原创 2021-11-23 19:00:58 · 1205 阅读 · 0 评论 -
mysql-执行计划(select_type && type)
字段查询更新-- 数字修改UPDATE user set id = id + 50where id=1;-- 字符串修改update userset name = CONCAT(name,'123','abc')where id = 2;多表查询和单表多次查询mysql表设计合理且有设置缓存和索引等的话,肯定是比自己程序去逐表查取更简洁,高效。专业的事情让专业的工具去做,关系库就是干这个的。 不过不建议3表以上的连接查询(可优化表设计,简化业务逻辑和使用程序分步解析数.原创 2021-10-31 09:01:24 · 1531 阅读 · 0 评论 -
myql-字段值追加更新
字符串修改id=2的数据,在name原字段值的基础上,添加123abc 字符串-- 字符串修改update userset name = CONCAT(name,'123','abc')where id = 2;数字修改id=1的数据,在id原字段值的基础上增加50-- 数字修改UPDATE user set id = id + 50where id=1;...原创 2021-10-31 08:33:51 · 624 阅读 · 0 评论 -
mysql数据库-监控指标名词
QPS就是说,你的这个数据库每秒可以处理多少个请求,你大致可以理解为,一次请求 就是一条SQL语句,也就是说这个数据库每秒可以处理多少个SQL语句TPS往往指的是一个数据库每秒里有多少个事务执行完毕了,事务提交或者回滚都算是事务执行完毕了,所以TPS衡量的是一个数据库每秒处理完的事务的数量IOPS:这个指的是机器的随机IO并发处理的能力,比如机器可以达到200 IOPS,意思就是说每秒可以执行200个随机IO读写请求。吞吐量:这个指的是机器的磁盘存储每秒可以读写多少字节的..原创 2021-10-31 08:27:47 · 639 阅读 · 0 评论 -
mysql-buffer缓冲区+链表
数据页溢出第一个数据页会存储部分数据,数据最后包含一个20个字节的指针,指向了其他的一些数据页,那些数据页用链表串联起来数据页缓存哈希表插入数据的时候,先从磁盘中加载一个空的数据页,添加到缓存页,然后将数据写到缓存页中保存缓冲区中所有的位置(表空间号+数据页号),在对数据进行操作的时候,会先去 缓存哈希表 查找数据存放的数据页是否存在,存在的话,拿到 缓存哈希表 key对应的 缓存页地址去获取数据,不存在从磁盘获取数据页,从free链表获取空闲缓冲页,读取的数据写入到缓冲区,缓...原创 2021-10-31 08:16:45 · 900 阅读 · 0 评论 -
mysql-事物
目录A. 事务的基本要素B. 事物并发,问题C. mysql事物隔离级别D. mysql默认隔离级别,可重复读(repeatable-read)D.1. 出现幻读的情况D.2. 验证快照的生成方式E. 串行化(serializable)A. 事务的基本要素1. 原子性2. 一致性3. 隔离性4. 持久性B. 事物并发,问题1. 脏读 , 事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据2. 不可重复读 , 事物A对同一.原创 2020-12-23 20:31:53 · 211 阅读 · 0 评论 -
mysql-主从同步+分库分表
myCate 或 sharding-sphere 中间件,实现主库写,从库读,分库分表同步方式after_Commit 主库写入日志到binLog, 等待binLog复制到从库,主库提交自己的本地事务,等待从库返回成功的响应,然后主库返回提交事务成功的响应给客户端MySQL 5.7 默认方式,主库把日志写入binLog, 并且复制给从库,然后开始等待从库的响应,从库返回说成功给主库了,主库再提交事务,接着返回提交事务成功的响应给客户端实现方式方式1传统方式,搭建半同步复制:..原创 2021-10-31 08:22:19 · 475 阅读 · 0 评论 -
mysql-索引
目录聚簇索引非聚簇索引覆盖索引回表查询前缀索引联合索引查询规则联合索引排序联合索引分组索引的创建索引创建规则聚簇索引B+树索引数据结构里,叶子节点就是数据页自己本身,那么此时我们就可以称这颗B+树索引为聚簇索引,聚簇索引默认是按照主键来组织主键索引(叶子节点存放的是,数据页,然后根据 数据页目录 中的主键:槽位的对应关系,获取数据)非聚簇索引非主键索引(叶子节点存放的是,主键id+索引字段,(回表查询)需要再通过主键去聚簇索引进行查询获取数据)原创 2021-11-23 18:35:44 · 279 阅读 · 0 评论 -
mysql-log+可重复读(mvcc)
目录redoLoginnodb_log_buffer_sizeredologBuffer刷到磁盘的时机事务redoLog数据流转undoLogmvcc = ReadView + UndoLog多版本链条redoLogredo log不是单行单行的写入日志文件的,他是用一个redo log block来存放多个单行日志的。一个redo log block是512字节,这个redo log block的512字节分为3个部分,一个是12字节的header块头,一个是4..原创 2021-11-23 18:18:08 · 531 阅读 · 0 评论 -
RAID + 表物理模型
目录RAID导致mysql服务变慢表是逻辑概念,表空间是物理层面RAID导致mysql服务变慢RAID种多磁盘冗余阵列技术,服务器存在多个磁盘,可以使用不同的磁盘做数据备份,在查找数据的时候,会先定位使用哪一个磁盘,然后再去磁盘上加载数据启RAID卡的缓存机制,但是此时就一定要注意这个RAID的锂电池自动充放电的问题,因为只要你用了RAID缓存机制,那么锂电池就必然会定时进行充放电去延长寿命,保证服务器掉电的时候可以把缓存数据写回磁盘,数据不会丢失在锂电池充放电的过程中,RAID的.原创 2021-11-23 18:30:52 · 876 阅读 · 0 评论 -
mysql压测
目录在linux上安装sysbench工具数据库压测的测试用例基于sysbench构造测试表和测试数据对数据库进行360度的全方位测试压测结果分析在linux上安装sysbench工具首先你需要有一台linux机器,如果你只有一个windows笔记本电脑,可以在里面装一个linux的虚拟机,然后你可以用如下的命令设置一下yum repo仓库,接着基于yum来安装sysbench就可以了,安装完成以后验证一下是否成功。curl -s https://packagecloud原创 2021-11-23 18:19:49 · 1016 阅读 · 0 评论 -
mysql磁盘数据存储 + sql执行过程
磁盘存储CREATE TABLE `teach` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(64) DEFAULT NULL, `sex` char(1) DEFAULT NULL, `phone` char(11) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET.原创 2021-09-29 14:59:54 · 269 阅读 · 0 评论 -
nosql避免注册的使用方式
目录nosql 破解1. 删除应用数据删除注册文件nosql 破解1. 删除应用数据C:\Users\Administrator\AppData\Roaming\NoSQL Manager Group\NoSQL Manager for MongoDBappConfig.xml可以直接将该文件删除,或者在删除之前将 servers 标签中的内容进行复制,在后面正常打开软件之后,将备份的内容粘贴到新的文件里面。删除注册文件win + r 输入命名: reged.原创 2021-04-10 12:54:16 · 269 阅读 · 0 评论 -
从数据库反向生成er图
目录注意创建项目空模型连接数据库从数据库中更新模型总结注意注意:保证系统使用的jdk是x86的,即32位的jdk创建项目空模型可能由于是下载的powerdesigner的版本问题,dbms这里最新的还是mysql5.0,但是从网上查找的软件版本基本上都是16.5的中文版,没有办法只能硬着头皮使用了连接数据库从数据库中更新模型默认是全选通过,这两个全选,全不选进行操作...原创 2021-04-08 00:03:06 · 8586 阅读 · 2 评论 -
oracle数据库,drop,truncate,delete 的区分
drop table student①属于DDL(数据定义语言)(数据库定义语言是不能能进行回滚操作的,回滚点是在第一条DML(数据操纵语言)开始的)或者是自己自定义一个回滚点。②不能进行回滚操作,该操作是将表放到oracle数据库的回收站中③不能带 where 的条件语句④表的内容和结构都删除(将表放到回收站了,肯定是什么东西都没有了,想象Windows的回收站)⑤删除的速度...原创 2019-10-29 08:57:43 · 183 阅读 · 0 评论