数据库
文章平均质量分 79
尔等同学
这个作者很懒,什么都没留下…
展开
-
【MySQL 45讲-12】第12讲mysql时不时抽风的原因
12 | 为什么我的MySQL会抖一下?前言一条SQL偶尔特别慢,且场景难复现,原因?做个比喻粉板:redo log掌柜的记忆: 内存账本: 数据文件脏页:内存数据页与磁盘数据页内容不一致刷脏页: 将内存页写入磁盘抖一下:可能实在刷脏页,平常执行很快的更新操作实在写内存和日志什么情况会引发数据库的flush过程?粉板满了,记不下了(redo log写满了,系统停止所有更新操作)尽量避免这种情况,全阻塞了,更新数跌为0生意太好,掌柜要.原创 2022-02-27 21:11:13 · 516 阅读 · 0 评论 -
【MySQL 45讲-11】第11讲 怎么给字符串字段加索引
11 | 怎么给字符串加索引?要解决的问题:支持邮箱登录的情况下,如何给邮箱加索引?前缀索引alter table SUser add index index2(email(6))email(6) 这个索引结构中每个邮箱字段都只取前 6 个字节(即:zhangs),所以占用的空间会更小,这就是使用前缀索引的优势可能会增加额外的记录扫描次数使用前缀索引,定义好长度,就可以做到既节省空间,又不用额外增加太多的查询成本区分度不够时用不了前缀索引,可试试倒叙存储记得用coun.原创 2022-02-27 20:52:03 · 568 阅读 · 0 评论 -
【MySQL 45讲-10】第10讲MySQL如何选择索引
10 | MySQL为什么有时候会选错索引? (可进行项目扩展)优化器的逻辑优化器的工作: 选择索引选择索引目标: 最小的代价执行扫描行数根据统计信息来估算记录数统计信息不准确,用analyze table来解决基数越大,索引的区分度越好基数:一个索引上不同值得个数使用show index方法查询索引基数MySQL如何得到索引的基数?采样统计,默认选择N个数据页,统计这些页面上的不同的值,得到平均值再乘以页面数区分度:统计信息使.原创 2022-02-27 20:39:05 · 558 阅读 · 0 评论 -
【MySQL 45讲-9】第9讲普通索引和唯一索引
09 | 普通索引和唯一索引,应该怎么选择?查询过程举个栗子select id from T where k=5查找过程:从B+树的树根开始,按层搜索到叶节点(数据页),然后根据二分法在数据页内部来定位。建立普通索引还是唯一索引?普通索引:查到第一个满足的记录后,需要查找下一个记录,直到碰到不满足k=5,结束唯一索引:因为有唯一性,所以找到了第一个满足的记录后就结束了性能差距:微乎其微InnoDB按数据页为单位读写所以都是读取一页,只是怕普通索引要多做一次查找.原创 2022-02-27 20:28:08 · 655 阅读 · 0 评论 -
【MySQL 45讲-8】第8讲 事务隔离性及快照的实现
总览图08 | 事务到底是隔离的还是不隔离的?当一个事务进入等待状态,那么等到这个事务自己获取到行锁要更新数据时,他读到的值是什么?begin/start transaction并不是一个事务的起点,在执行到他们之后的第一个操作表的语句,事务才真正启动。想要马上启动一个事务可以使用 start transaction with consistent snapshot 这个命令举个栗子(id,k) values(1,1,)(2,2)事务B:k=3事务A:k=1视图原创 2022-02-20 22:07:15 · 776 阅读 · 0 评论 -
【MySQL 45讲-6&7】第6&7讲 数据库的锁
总览图06 | 全局锁和表锁锁的设计初衷:处理并发问题锁的分类全局锁表级锁行锁全局锁对整个数据库实例加锁加全局读锁的命令:Flush tables with read lock(FTWRL)数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。这些语句会被阻塞典型使用场景:全库逻辑备份即:把整个库的表都select出来存成文本用mysqldump使用参数-single-transaction来启动一个事务原创 2022-02-17 21:08:41 · 703 阅读 · 0 评论 -
【MySQL 45讲-5】第5讲-索引下
总览图05 | 深入浅出索引(下)例子select * from T where k between 3 and 5需要执行几次树的搜索操作?在k索引树上找到k=3的记录,取得ID=300;在主键索引树上查到ID=300对应的R3;在k索引树上取下一个值k=5,取得ID=500;再回到主键索引树上查到ID=500对应的R4;在k索引树上取下一个值k=6,不符合条件,循环结束。查询过程读了 k 索引树的 3 条记录(步骤 1、3 和 5),回表了两次(步骤 2 和原创 2022-02-16 21:43:18 · 661 阅读 · 0 评论 -
【MySQL 45讲-4】第4讲-索引上
总览图04 索引(上)索引是为了提高数据查询的效率,类似于书的目录索引常见模型哈希表键值对来存储数据思路:将值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置。哈希碰撞:拉链法因为不是有序的,所以哈希索引做区间查询的速度很慢适用情景:只有等值查询,如Mencached、NoSQL有序数组适用场景:等值查询和范围查询但更新数据时成本过高需要挪动数据所以只适用于静态存储引擎,(不会再修改的数据)搜索树原创 2022-02-16 21:32:26 · 574 阅读 · 0 评论 -
【MySQL 45讲-3】第3讲-事务隔离
事务隔离MySQL原生引擎MyISAM不支持事务,所以被InnoDB取代。事务, ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)redis 的隔离性是?redis 的事务中的隔离性并没有保证原子性,已经做过的操作是不会rollback的。它的隔离性是指其他事务不会干扰到它自己的事务。隔离性与隔离级别隔离性Isolation:一个事务执行时不能受其他事务的干扰。隔离级别读未提交 read uncommi.原创 2022-01-20 15:58:29 · 649 阅读 · 0 评论 -
【MySQL 45讲-1&2】第1讲和第2讲
本系列笔记学习MySQL 45讲,思维导图来源网络,侵删。总览图1.sql执行过程先查询缓存一般不建议使用查询缓存,因为一个表的更新会导致这个表的缓存结果失效,重复的建立缓存并不是高效的使用办法。除非这个表不会经常变动,如系统配置表query_cache_type=demand, 默认的都不使用查询缓存使用查询缓存: SQL_CACHE显式指定没命中缓存会去执行语句分析器做词法分析(分析每个字符串)、语法分析(判断是否满足语法)分析器处理后会经过优化器处理优化器的作用是选择使用哪种方案原创 2021-12-25 18:48:22 · 116 阅读 · 0 评论 -
MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。
大致说一下问题的解决思路:先按照提示看下面的博客,然后跟着操作.基本可以解决,先去 找 存放数据库的文件夹,把 所有数据备份.再进行操作.白给两小时的我,找到了下面比较有用的博客.MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。https://blog.csdn.net/koloumi/article/details/83117497...原创 2019-08-17 18:18:48 · 669 阅读 · 0 评论 -
SpringBoot+MQ+Redis+BootStrap 秒杀系统(二) 登录业务之多次md5加密
项目地址:https://github.com/wannengdek/spring-boot-seckill如果项目对您有所帮助,麻烦帮忙点亮小⭐⭐登录业务1、数据库设计DROP TABLE IF EXISTS `miaosha_user`;CREATE TABLE `miaosha_user` ( `id` bigint(20) NOT NULL AUTO_INCRE...原创 2019-08-14 19:07:27 · 380 阅读 · 0 评论 -
SQL优化(一) mysql逻辑分层、索引、优化
MySQL优化(一)1、原理MYSQL逻辑分层 :连接层、服务层、引擎层、存储层[外链图片转存失败(img-bJ3DEt8I-1564636624935)(Untitled.assets/1564635915874.png)]查询数据库引擎:支持哪些引擎? show engines ;查看当前使用的引擎 show variables like ‘%storage_engine%’...原创 2019-08-01 13:26:52 · 415 阅读 · 0 评论 -
MySQL优化(一)
文章目录MySQL优化(一)1、原理MYSQL逻辑分层 :查询数据库引擎:2、SQL优化SQL :SQL优化, 主要就是 在优化索引B树的原理图:3、索引分类创建索引:4、SQL性能(1)id(2)select_type:查询类型(3)type 类型MySQL优化(一)1、原理MYSQL逻辑分层 :连接层、服务层、引擎层、存储层查询数据库引擎:支持哪些引擎? show engines...原创 2019-08-03 23:25:28 · 113 阅读 · 0 评论 -
数据库学习——查询、子查询、视图
1.基本操作查询:select * from 表名删除:删除表:drop table [表名]删除指定列:delete from [表名] where [条件]更新:update [表名] set [列名=表达式] [where + 条件]增加:增加一列: alert table [表名] add [列名] [列属性]2.关键字countcout(*)...原创 2019-04-20 22:05:31 · 215 阅读 · 0 评论 -
图书管理系统设计
图书管理系统设计设计要求:设计图书管理数据库,基础数据包括图书信息、读者信息、读者借阅图书联系。画出E-R图,并使用sql实现数据的定义,注意关系的完整性约束条件。需求分析学生可以查看自己借阅的书籍、可以查阅书籍信息。 管理可以查看所有学生借阅的书籍。 学生归还图书之后,系统自动修改书籍的借阅信息。 管理员可以增加、修改、删除图书。 管理员可以注销学生信息。...原创 2019-03-27 22:37:42 · 25142 阅读 · 0 评论 -
LeetCode数据库解题记录及总结
596. 超过5名学生的课方法1:使用 group by 和 子查询先去重查出每个class里有几个学生,然后再挑选出符合要求的记录。SELECT class, COUNT(DISTINCT student) FROM coursesGROUP BY class;然后进行子查询SELECT class FROM (SELECT class, COUNT(DIS...原创 2019-04-01 17:31:17 · 512 阅读 · 0 评论 -
数据库练习
数据库练习设有一个数据库SPJ数据库,包括S、P、J及SPJ 4个关系模式:S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEINGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)。供应商表由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)。零件表由零件代...原创 2019-03-25 20:13:40 · 2828 阅读 · 0 评论 -
数据库学习——绪论
1.思维导图2.总结3.思维导图导出的文字版思维导图1.思维导图(下载到本地即可完整查看)2.总结数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。它具有整体性、共享性。常用的有Access、MySQL、oracle数据库三种数据库。在初学时使用mysql更容易上手。绪论中含有较多的概念,需要认真掌握才行,这对于以后...原创 2019-03-04 18:12:45 · 281 阅读 · 0 评论