自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 mysql索引

数据库中数据是存储在磁盘上的,读取数据时就会涉及到io,io一般都是我们系统瓶颈,为了提高查询效率,在从磁盘读取数据时,我们要尽可能的少的去读取数据(次数少、数量少),同时保证读取到的数据足够有效,我们一般系统中数据量大的表数据我们不可能一次把数据全部读取到内存中。以查询所有列数据,查询条件为shop_code = '301’为例,我们需要遍历页1 ----> 页3 ---->页7在页7拿到对应的主键ID,然后再遍历主键索引,页1 —> 页2 —>页6,最终找到一个完整的行数据所在页,拿到完整的数据。

2022-10-22 22:04:24 253 2

原创 面向对象设计模式(工厂模式)

面向对象的六大设计原则1:单一职责原则-其实就是“高内聚,低耦合”。每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。2:开闭原则-核心思想就是:对扩展开放,对修改关闭3:里式替换原则-核心思想:在任何父类出现的地方都可以用子类来替代。也就是说在同一个继承体系中的对象应该有共同的行为特征。4:依赖倒转原则-要依赖于抽象和接口,不要依赖于具体实现。5:接口分离原则-核心思想:不应该强迫程序依赖它们不需要使用的方法。即一个接口不需要提供太多的行为,一个接口应该只

2020-06-14 14:46:08 499

原创 IO介绍(二)

同步IO和异步IO同步IO和异步IO是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,而异步是指用户进程触发IO操作以后便开始自己的事情,当IO操作已经完成的时候会得到IO完成的通知。指的是用户空间和内核空间数据的交互方式同步:用户空间要的数据,必须等到内核空间给它才做其它的事情异步:用户空间要的数据,不需要等到内核空间给它,才做其它的...

2019-09-01 19:02:53 126

原创 IO介绍

一:用户空间和内核空间    学习Linux时经常可以看到User space(用户空间)和Kernel space(内核空间)。    简单来说,kernel space是Linux内核的运行空间,User space是用户程序的运行空间。为了安全,他们是隔离的,即使用户的程序崩溃了也不受影响。    虚拟内存操作系统划分成两块:内核空间和用户空间,内核空间是内核代码运行的地方,用户空间是...

2019-08-11 21:21:02 106

原创 Lucene全文检索

一:什么是全文检索我们生活中数据总体分为两种,结构化数据和非结构化数据。结构化数据:指具有固定格式或有限长度的数据,如数据库、元数据等。非结构化数据:指不定长或无固定格式的数据,如互联网数据、邮件、word文档等。非结构化数据又有一种叫法叫全文数据。二:目前主流的Java全文检索技术lucene:Java语言全局检索技术的底层实现。使用该技术需要对Lucene的API底层原理非常...

2019-08-03 17:26:02 77

原创 MySQL分库分分表

数据切分规则:水平切分(横向切分)和垂直切分(纵向切分)一:垂直切分可以分为:垂直分库和垂直分表垂直分库:主要解决的问题是单个数据库中数据表过多的问题。垂直分库的思路就是根据业务维度进行设计层面的切分如现在广泛使用的微服务架构,每个服务都包含了单独的数据表、表现层、业务层和持久层,每个服务负责一部分独立的业务处理。多个微服务协同完成一整套的业务流程。要按照ER关系进行垂直分库如下图...

2019-07-28 22:40:04 93

原创 数据库事物

一:什么是事物?事物指的是逻辑上一组操作,组成这个事物的各个执行单元,要么一起成功,要么一起失败。二:事物的特性 (ACID)原子性(Atomicity)原子性是指事物包含的所有操作要么全部成功,要么全部失败回滚。一致性(Consistency)一致性是指事物必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事物执行之前和执行之后都必须除以一致性状态。举个栗子:...

2019-07-21 15:56:30 137

原创 MySQL结构

MySQL逻辑结构图 v5.6

2019-07-14 16:42:39 325

原创 MySQL查询原理简述

一:MySQL查询1:单表查询根据where条件过滤表中的记录,每过滤一次形成一张中间表(中间表对用户是不可见的)。然后根据select的选择列返回最终的结果。2:两张表连接查询对两表求积(笛卡尔积:行相乘,列相加)并用on条件和连接类型进行过滤形成中间表,然后根据where条件过滤中间表的记录,并且根据select指定的列返回查询结果。3:多表连接查询先对第一个和第二个表按照两表连接...

2019-07-14 16:06:06 6034

原创 MySQL锁的简介

1:并发问题:同一时间进行读写,可能会引起数据不一致问题,2:解决并发问题:MySQL使用锁机制去解决并发问题3:锁的分类MySQL使用两种锁机制去解决该问题:共享锁和排他锁,也叫读锁或者写锁共享锁、读锁:不影响其他链接的读,写会受影响排他锁、写锁:会不让其他链接进行读写MySQL针对不同的数据粒度,又分别使用表锁和行锁进行锁定4:锁的实现MySQL是使用MV...

2019-07-07 15:34:28 85

原创 MySQL查看执行计划explain

MySQL执行计划 MySQL提供了一个EXPLAIN命令,它可以对SELECT语句进行分析,并输出SELECT执行的详细信息,以便于开发人员可以针对性的进行优化一:参数说明:explain 出来的信息有10列,分别为id、select type、table、type、possible keys、key、key len、ref、rows、extra一、id:每个select语句都会自动...

2019-06-30 18:32:25 386

原创 MySQL索引

MySQL索引1:索引是什么?官方介绍索引是帮助MySQL 高效获取数据的数据结构。通俗来讲,数据库索引好比一本书的目录,能加快数据库的查询速度。一般来说,索引本身也很大,不可能全部存储在内存中,因此,索引往往是存储在磁盘上的文件中的。我们通常所说的索引,没有特别说明,都是指的B树(多路搜索树,并不一定是二叉结构)结构组织的索引。其中聚集索引、次要索引、覆盖索引、符合索引、前缀索引、唯一索...

2019-06-23 15:24:38 1140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除