MySQL
文章平均质量分 94
MySQL
大象大象你的鼻子怎么那么长
学海无涯乐作舟,直挂云帆济沧海
展开
-
【读书笔记】MySql实战45讲——orderby的工作原理
class Solution { public int maximumProduct(int[] nums) { Arrays.sort(nums); int nums_len=nums.length; int result = nums[0] * nums[1] * nums[2]; result = Math.max(result, nums[0] * nums[1] * nums[nums_len-1]); res原创 2021-01-21 13:31:29 · 242 阅读 · 1 评论 -
【读书笔记】MySQL实战45讲——普通索引和唯一索引
该课程来自极客时间《MySQL实战45讲》文章目录一、普通索引和唯一索引的选择1、查询过程1.1、性能差异2、更新过程2.1、buffer pool2.2、change buffer2.3、何时会merge?2.4、change buffer的好处2.5、何时使用change buffer?2.6、插入记录流程3、索引选择的总结二、change buffer和redo log三、问题一、普通索引和唯一索引的选择如字段k上的值都不重复,普通索引和唯一索引有何差异?1、查询过程如使用SELEC.原创 2020-12-19 18:32:19 · 429 阅读 · 1 评论 -
【读书笔记】MySQL实战45讲——事务隔离
该课程来自极客时间《MySQL实战45讲》文章目录视图快照快照的实现方式当前读事务的可重复读的能力是怎么实现的?读提交与可重复读的区别问题如果是可重复读隔离级别,事务启动会创建视图read-view,保证数据在整个事务中一致。但是,当一个事务更新一行,另一个事务恰好拥有这行的行锁,那它就会进行等待状态。举个例子。mysql> CREATE TABLE `t` ( `id` int(11) NOT NULL, `k` int(11) DEFAULT NULL, PRIMARY .原创 2020-12-17 00:00:06 · 262 阅读 · 0 评论 -
【读书笔记】MySQL实战45讲——行锁
课程来自极客时间《MySQL实战45讲》文章目录一、行锁1、两阶段锁2、死锁和死锁检测2.1、死锁解决策略2.2、如何解决热点行更新导致的性能问题?三、问题MySQL的行锁是在引擎层由各个引擎自己实现的,如InnoDB,而MyISAM不支持行锁,这就代表并发控制只能用到表锁,表锁在同一张表上同一时刻只能有一个更新,这影响到业务并发度。一、行锁行锁就是针对数据表中行记录的锁1、两阶段锁在InnoDB事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放,而是要等到事务结束时才释放。这个.原创 2020-12-08 23:29:04 · 271 阅读 · 0 评论 -
【读书笔记】MySQL实战45讲——全局锁和表锁
课程来自极客时间《MySQL实战45讲》文章目录一、全局锁二、表级锁1、表锁2、MDL三、问题一、全局锁全局锁就是对整个数据库实例加锁实现方法Flush tables with read lock使用这个命令让整个库处于只读状态,其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。使用场景典型场景:做全库逻辑备份。即把整库每个表都select出来存成文本。风险:1.如果在主库备份,在备份期间不能更新,业务停摆2..原创 2020-12-07 22:29:06 · 285 阅读 · 0 评论 -
【读书笔记】MySQL实战45讲——索引
课程来自极客时间《MySQL实战45讲》一、何为索引索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。1、索引的常见模型实现索引的方式有多种,常见、简单的数据结构有以下三种1.1、哈希表哈希表是一种以键-值(key-value)存储数据的结构,我们只要输入待查找的值即key,就可以找到其对应的值即Value哈希的思路是,把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置。若有多个key值经过哈希函数运算后得到同一个值,会使用拉链法,也.原创 2020-12-03 23:14:43 · 292 阅读 · 0 评论 -
【读书笔记】MySQL实战45讲——事务隔离
课程来自极客时间《MySQL实战45讲》文章目录一、事务1.特性2.事务隔离级别3.可能导致的问题“不可重复读”和“幻读”二、案例理解不同隔离级别1.隔离级别实现原理2.如何修改默认隔离级别三、事务隔离的实现四、事务的启动方式五、问题一、事务1.特性原子性:一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做一致性:事务必须是数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据,对.原创 2020-12-02 22:12:29 · 355 阅读 · 0 评论 -
【读书笔记】MySQL实战45讲——日志系统
文章目录redo log:InnoDB引擎特有crash-safe如何保证提交记录不丢失?binlog:Server层特有如何让数据库恢复到半个月内任意一秒的状态?为什么binlog没有crash-safe的功能?redolog与binlog的不同两阶段提交两阶段提交的重要性在两阶段提交的不同时刻,MySQL异常重启会出现什么现象崩溃恢复时的判断规则MySQL怎么知道binlog是完整的?redo log 和 binlog是怎么关联起来的?能不能只用redo log,不要binlog?问题redo lo原创 2020-12-01 22:57:14 · 558 阅读 · 1 评论 -
【读书笔记】MySQL实战45讲—基本架构
课程来自极客时间《MySQL实战45讲》文章目录Server层连接器全部使用长连接的弊端?解决方案查询缓存为什么大多数情况下不要使用查询缓存?如何指定查询缓存?分析器优化器执行器存储引擎层问题MySQL可分为Server层和存储引擎层两部分Server层Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。连接器连接器负责跟客户.原创 2020-11-30 22:54:49 · 306 阅读 · 0 评论 -
一步步体验由奢入俭难!Spring结合Druid数据连接池对JDBC的简化写法
数据库连接池概念其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处节约资源用户访问高效实现标准接口:DataSource javax.sql包下的方法:获取连接:getConnection()归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.cl原创 2020-06-11 01:21:57 · 364 阅读 · 0 评论 -
这就是JDBC!终于弄明白基本用法了
文章目录JDBC学习总结JDBC快速入门详解各个对象抽取JDBC工具类:JDBCUtilsJDBC控制事务JDBC学习总结JDBC概念:Java DataBase ConnectivityJDBC本质:官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。快速入门导入jar包,这个包我会上传到我的资源里,设置0c币获取,步骤如下:在IDEA中原创 2020-06-10 00:59:11 · 536 阅读 · 0 评论 -
扎实的基础!MySQL全面复习总结
文章目录SQL分类DDL:操作数据库、表SQL分类DDL:操作数据库、表操作数据库:CRUDC(Create):创建创建数据库:create database 数据库名称;创建数据库,判断不存在,再创建:create database if not exists 数据库名称;创建数据库,并指定字符集create database 数据库名称 character set 字符集名;练习:创建db数据库,判断是否存在,并指定字符集为gbkcreate dat原创 2020-06-07 18:02:10 · 12580 阅读 · 88 评论