
数据库
锦鱼不忘旧时晨
用一句话不能解释的技术,说明你还没有真正理解它。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL索引底层面试常问的问题
文章目录一、聚簇索引和非聚簇索在索引树的叶子结点上存储的数据有什么区别?二、覆盖索引三、索引失效的底层原理联合索引排序的原理一、聚簇索引和非聚簇索在索引树的叶子结点上存储的数据有什么区别?聚簇索引:并不是一种单独的索引类型,而是一种数据存储方式,术语“聚簇”表示数据行和和相邻的键值紧凑的存储在一起,因为无法同时把数据行放在两个不同的地方,所以一个表只能有一个聚簇索引。聚簇索引的优点:数据访问更快,聚簇索引将索引和数据保存在同一个索引树中,因此从聚簇索引中获取数据通常比在非聚簇索引中查找更快。Inno原创 2020-10-02 14:39:38 · 382 阅读 · 0 评论 -
MySQL高级(五)——(各种读问题,数据库中的各种锁,MVCC,主从复制)
1、主从复制原理一主一从\color{green}{一主一从}一主一从(1)主服务器上面的任何修改都会通过自己的IO线程保存在二进制日志文件中(binary log)。(2)从机上面也启动一个IO线程,通过配置好的用户名和密码,连接到主服务器上面请求读取二进制日志,然后把读取到的二进制日志写到本地的一个中继日志里面(Relay log)。(3)从服务器上面同时开启一个SQL thred定时检查Realy log(二进制),如果发现有更新立即把更新的内容在本机的数据库在上面执行一遍。一主多从\co原创 2020-09-20 13:30:31 · 456 阅读 · 0 评论 -
MySQL高级(四)——(in和exists,order by优化,慢查询日志,show profile,数据库锁)
1、MySQL中in和existsin和exists常用与where表达式中,其作用是查询某个范围内的数据。用法1select *from A where in id(1,2);# 就等同于 select *from A where id=1 and id=2;用法2select *from A where id in(select id from B);# 等价于- select id from B;先执行in中的查询,并且缓存结果集- select *from A where原创 2020-08-29 22:25:29 · 600 阅读 · 0 评论 -
MySQL高级(三)——索引优化,索引失效
索引分析1、单表索引优化CREATE TABLE IF NOT EXISTS `article`(`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,`author_id` INT (10) UNSIGNED NOT NULL,`category_id` INT(10) UNSIGNED NOT NULL , `views` INT(10) UNSIGNED NOT NULL , `comments` INT(10) UNSIGN原创 2020-08-27 12:36:50 · 367 阅读 · 0 评论 -
MySQL高级(二)——索引(什么是索引,分类,结构,什么时候适合建立,Explain使用)
1、索引概述(1)索引是什么?MySQL 官方对索引的定义为:索引(Index)是帮助 MySQL 高效获取数据的数据结构。可以得到索引的本质: 索引是数据结构。可以简单理解为排好序的快速查找数据结构。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是一种可能的索引方式示例:左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址。 右边维护一个二叉查找树,每个原创 2020-08-25 15:00:14 · 887 阅读 · 0 评论 -
MySQL高级(一)(逻辑架构,SQL执行顺序,常见的JOIN查询)
1、MySQL Linux的安装下载链接https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar2、MySQL配置文件原创 2020-08-23 17:37:56 · 170 阅读 · 0 评论 -
数据库连接池(DBCP,C3P0,Druid),DBUtils工具类
为什么要有连接池?建立数据库连接是一种非常耗时、耗资源的行为,所以通过数据库预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接库中申请一个就行,使用完毕再归还到连接池中。1、数据库连接池的作用连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,**当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后...原创 2020-04-10 14:03:18 · 355 阅读 · 0 评论 -
事务(ACID特性,读问题,隔离级别)
1、事务基本概念事务是指一组最小的逻辑操作单元,里面有多个操作组成。组成事务的每一部分必须要同时提交成功,如果有一个操作失败,整个操作就回滚。2、事务的ACID特性(1)原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。(2)一致性(Consistency)事务必须使数据库从一个一致性状态变换到另外一个一致性状态。(3)隔离性(...原创 2020-04-09 10:38:04 · 471 阅读 · 0 评论 -
JDBC(入门,ResultSet,SQL注入,批处理,调用存储过程和函数,获取自增长键的值)
1、概述JDBC:Java Data Base Connectivity Java 连接数据库。JDBC:其实就是Java定义的一套和数据库建立连接的规范(接口),那么各家数据库厂商,想要Java去操作各家的数据库,必须实现这套接口,我们把数据库厂商写的这套实现类,称之为数据库驱动。2、使用JDBC(1)入门/*1.导入数据库的驱动jar包,mysql版本不同jar包不同2.加载驱动j...原创 2020-04-07 18:14:57 · 382 阅读 · 0 评论 -
MySQL(存储过程,触发器,视图,函数,三大范式,索引)
1、存储过程procedure(1)概念存储过程是数据库中的一个对象,存储在服务端,用来封装多条SQL语句且带有逻辑性,可以实现一个功能,由于他在创建时,就已经对SQL进行了编译,所以执行效率高,而且可以重复调用,类似于Java中的方法。(2)使用语法DELIMITER $$CREATE PROCEDURE 数据库名.存储过程名(参数) BEGIN -- SQ...原创 2020-04-07 14:11:39 · 459 阅读 · 1 评论 -
MySQL(分组,分页,约束,级联删除级联更新,多表查询)
1.分组查询(1)概述分组查询:group by ,一般配合聚合函数使用查出的数据才有意义。查询的字段:1.分组字段本身 2.聚合函数(2)案例演示案例演示所用的表CREATE TABLE `emp` ( `empno` int(11) DEFAULT NULL, `ename` varchar(50) DEFAULT NULL, `job` varchar(50)...原创 2020-04-06 14:11:39 · 3318 阅读 · 0 评论 -
MySQL(概述,数据类型,DDL,DML,DCL,DQL)
1.概述(1)概念数据库就是数据存储的仓库,用于存储和管理数据。(2)常见的数据库产品Oracle:oracle公司 大型的关系型数据库 6.0 收费的DB2:IBM公司 大型的关系型数据库 收费的Mysql:mysql公司 中小型关系型数据库 免费的。后来被oracle收购,mysql6之后收费(社区版,旗舰版)Sql Server:微软公司 中小型关系型数据库 ...原创 2020-04-02 16:59:32 · 338 阅读 · 1 评论