
数据库
wa_c777
知行合一
展开
-
MySQL实战进阶 24 - 主备延迟给读写分离带来的问题
MySQL实战进阶 24 - 主备延迟给读写分离带来的问题。总结:问题:原创 2021-02-05 15:24:00 · 111 阅读 · 0 评论 -
MySQL实战进阶 23 - 主备切换、GTID
MySQL实战进阶 23 - 主备切换、GTID。总结:问题:原创 2021-02-04 09:59:46 · 188 阅读 · 0 评论 -
MySQL实战进阶 22 - MySQL备库并行复制能力
MySQL实战进阶 21 - MySQL备库并行复制能力。总结:问题:原创 2021-02-02 16:55:49 · 137 阅读 · 0 评论 -
MySQL实战进阶 21 - MySQL如何保证高可用(主备延迟、原因、解决方法)
MySQL实战进阶 21 - MySQL如何保证高可用(主备延迟、原因、解决方法)。总结:问题:原创 2021-02-02 11:19:15 · 140 阅读 · 0 评论 -
MySQL实战进阶 20 - MySQL主备一致实现原理(binlog实现原理)
MySQL实战进阶 20 - MySQL主备一致实现原理。总结:问题:原创 2021-02-02 09:43:16 · 126 阅读 · 0 评论 -
MySQL实战进阶 19 - MySQL写入binlog、redolog的流程
MySQL实战进阶 19 - MySQL写入binlog、redolog的流程。redo log的写入机制问题1:问题2:原创 2021-02-01 15:27:47 · 268 阅读 · 0 评论 -
MySQL实战进阶 18 - 业务高峰期问题的临时解决方案
MySQL实战进阶 18 - 业务高峰期问题的临时解决方案。总结:原创 2021-01-27 15:52:51 · 215 阅读 · 0 评论 -
MySQL实战进阶 17 - MySQL加锁规则
MySQL实战进阶 17 - MySQL加锁规则。总结 + 问题:原创 2021-01-26 10:59:34 · 107 阅读 · 0 评论 -
MySQL实战进阶 16 - 幻读、幻读产生的问题、如何解决幻读(使用间隙锁、以及其他方法)
MySQL实战进阶 16 - 幻读、幻读产生的问题。总结:原创 2021-01-26 09:46:30 · 144 阅读 · 0 评论 -
MySQL实战进阶 15 - 查一行执行慢、被锁住的案例
MySQL实战进阶 15 - 查一行执行慢、被锁住的案例。总结:问题:这个问题的具体分析下面一篇单独做解释(由于幻读产生的问题,以及如何解决)。...原创 2021-01-26 09:04:36 · 113 阅读 · 0 评论 -
lock in share mode 和 for update的区别
for update与lock in share mode是应用于并发情况下对数据进行加锁操作,举例假设:Session A(先)、Session B(后)来描述并发操作。select ... lock in share mode,是IS锁(意向共享锁),在符合条件的rows上都加了共享锁,因此其他session可以读取这些记录,也可以继续添加IS锁,但是无法修改这些记录直到你这个加锁的Session A执行完成(否则直接锁等待超时)。select ... for update,是IX锁(.原创 2021-01-25 16:13:48 · 1160 阅读 · 0 评论 -
MySQL实战进阶 14 - 对索引字段做函数操作产生的影响
MySQL实战进阶 14 - 对索引字段做函数操作产生的影响。总结:问题:原创 2021-01-20 10:47:14 · 161 阅读 · 0 评论 -
MySQL实战进阶 13 - 如何正确高效的显示随机数据
MySQL实战进阶 13 - 如何正确高效的显示随机数据。总结:问题:原创 2021-01-14 15:09:08 · 134 阅读 · 0 评论 -
MySQL - 慢查询日志slow log
MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。~ 查看是否开启慢查询日志参数说明:slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)long_query_time 查询超过多少秒才记录~ 配置慢查询日志1)临时配置2)永久配置~ 查看慢查询日志:...原创 2021-01-14 09:59:49 · 171 阅读 · 0 评论 -
MySQL实战进阶 12 - order by 是如何执行的
MySQL实战进阶 12 - order by 是如何执行的。总结:问题:原创 2021-01-13 15:14:50 · 184 阅读 · 0 评论 -
MySQL实战进阶 11 - count(*)是如何实现的
MySQL实战进阶 11 - count(*)是如何实现的总结:问题:原创 2021-01-13 10:12:45 · 161 阅读 · 0 评论 -
MySQL实战进阶 10 - 数据库的表空间回收
MySQL实战进阶 10 - 数据库的表空间回收总结问题:原创 2021-01-12 15:39:58 · 148 阅读 · 0 评论 -
MySQL实战进阶 9 - MySQL为什么会“抖”一下(flush刷脏页)
“抖”即:flush刷脏页。总结:问题:原创 2021-01-12 10:37:53 · 144 阅读 · 0 评论 -
MySQL实战进阶 8 - 如何给字符串字段加索引
总结:问题:原创 2021-01-12 09:59:03 · 156 阅读 · 1 评论 -
MySQL实战进阶 7 - MySQL为什么有时候会选错索引
问题:原创 2021-01-08 15:02:58 · 130 阅读 · 0 评论 -
MySQL实战进阶 6 - 如何选择普通索引还是唯一索引
//原创 2021-01-08 10:36:30 · 118 阅读 · 0 评论 -
MySQL实战进阶 5 - 事务隔离进一步详解
这一部分还没有彻底的理解,先放结论吧。原创 2021-01-07 15:23:45 · 140 阅读 · 0 评论 -
MySQL实战进阶 4 - 全局锁、表锁、行锁
根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。全局锁表锁//原创 2021-01-07 14:50:48 · 125 阅读 · 0 评论 -
MySQL实战进阶 3 - 索引
三种常见的索引模型:N叉树、哈希表、有序数组;InnoDB的索引模型索引维护:回表覆盖索引最左前缀原则索引下推总结面试题1:...原创 2021-01-07 10:32:23 · 124 阅读 · 0 评论 -
MySQL实战进阶 2 - 事务隔离
03 | 事务隔离:为什么你改了我还看不见?隔离性与隔离级别事务隔离的实现(以可重复读为例)事务的启动方式面试题:原创 2020-12-21 14:46:01 · 139 阅读 · 1 评论 -
MySQL实战进阶 1 - 查询语句、更新语句如何执行
发现日常里用的这么久的数据库,感觉很“平常”的小伙伴,好像还没有专门抽出一次性的较多时间,来对其系统性深入解剖学习;虽然平常也有积累,总的来说方方面面比较零碎;后来发现这一块到了个人技能瓶颈了,(基础)需要进阶,将以前积累的,结合《高性能mysql》、「极客时间-MySQL实战45将」、源码,进行一次系统性的进阶学习;01丨基础架构:一条SQL查询语句是如何执行的?mysql基本架构(逻辑)示意图:连接器查询缓存分析器原创 2020-12-18 15:32:53 · 194 阅读 · 0 评论 -
MySQL插入百万条数据 - 个人总结1
有好多种方法。。。之前也总结了一些,但放到现在来看,效率都一般,于是重新思考总结这个问题;觉得比较好的方法如下:(推荐方法二)方法一:使用存储过程procedure每次insert的时候mysql都会自动提交,然后会有其他的一些耗时的操作,所以。。。。。取消掉自动提交不就好了嘛。。。直接 SET AUTOCOMMIT=0;drop table if exists test;create table test (c1 int(11) default NULL,c2 varchar(3原创 2020-12-18 10:32:41 · 809 阅读 · 0 评论 -
5.《高性能MySQL》个人读书笔记 - 【第7章 MySQL高级特性】
1、分区表分区表的原理分区表的类型如何使用分区表这里先给出一个很实用的案例:查10亿条数据:上面这两种策略也会出现问题的,如下介绍;什么情况下会出现问题查询优化2、视图3、外键约束4、在MySQL内部存储代码存储过程和函数触发器事件在存储程序中保留注释5、游.原创 2020-12-17 17:31:11 · 158 阅读 · 0 评论 -
4.《高性能MySQL》个人读书笔记 - 【第6章 查询性能优化】
1、浅析查询速度2、慢查询基础:优化访问数据2.1、是否向数据库请求了不需要的数据,典型的有:查询不需要的记录; 多表关联时返回全部列; 总是取出全部列; 重复查询相同的数据;2.2、MySQL是否在扫描额外的记录响应时间扫描的行数和返回的行数扫描的行数和访问的类型3、重构查询的方式3.1、考虑有必要的将一个复杂查询分成多个简单的查询3.2、切分查询3.3、分解关联查询.原创 2020-12-15 15:44:16 · 129 阅读 · 0 评论 -
3.《高性能MySQL》个人读书笔记 - 【第5章 创建高性能索引 】
第5章 创建高性能索引这一章,作者认为很重要,所以首先放在靠前的章节来讲解:0、ORM与索引之间的关系1、MySQL索引类型B+Tree索引;哈希索引;RTree空间数据索引(很少使用,了解就好);全文索引;2、索引的优点3、高性能的索引策略3.1、聚簇索引3.2、覆盖索引3.3、索引和锁4、总结这一章也是,省略跳过的东西也比较多,没关系,那些看的比较费力的以后再看..原创 2020-12-10 16:17:41 · 146 阅读 · 0 评论 -
MySQL海量查询优化 - 个人总结1
JOIN 后的的条件必须是索引,最好是唯一索引,否则数据一旦很多会直接卡死 一般禁止使用UNIION ON,除非UNION ON 前后的记录数很少 禁止使用OR 查总数使用COUNT(*)就可以,不需要COUNT(ID),MYSQL会自动优化 数据库字段设置 NOT NULL,字段类型 INT > VARCHAR 越小越好 禁止SELECT * ,需要确定到使用的字段 一般情况不在SQL中进行数值计算 SQL要写的简洁明了...原创 2020-11-23 15:41:40 · 114 阅读 · 0 评论 -
2.《高性能MySQL》个人读书笔记 - 【第2、3、4章】
第2章、第3章分别讲了MySQL基准测试、服务器性能剖析,看看就行;第4章 讲了schema与数据类型优化;1、选择优化的数据类型一般情况下,应该尽量使用可以正确存储数据的最小数据类型;2、加快ALTER TABLE的操作速度这一章其他内容比较零碎,最后还是放个总结吧:...原创 2020-11-23 15:00:55 · 209 阅读 · 0 评论 -
1.《高性能MySQL》个人读书笔记 - 【第1章 MySQL架构与历史】
本书概览:本书内容分类大致可划分为:1、2、3、4、5、6,这六章按作者的意思,为基础内容;7;8,9;10、11、12、13、14、15;最后,16及附录;本书MySQL用的版本是5.1和5.5;第1章 MySQL架构与历史处理、存储分离:1、MySQL架构逻辑MySQL逻辑架构图,如下:1.1、连接管理与安全性1.2、优化与执行2、并发控制2.1、读写锁2.2、锁粒度、策略.原创 2020-11-23 14:26:32 · 155 阅读 · 1 评论 -
面试题总结:SQL:where 1=1
1=1 是永恒成立的,意思无条件的,也就是说在SQL语句中有没有这个1=1都可以。这个1=1常用于应用程序根据用户选择项的不同拼凑where条件时用的。比如一个简单的查询语句,where默认为1=1,这样用户即使不选择任何条件,sql查询也不会出错。如果传入了相应的参数,那么where变成了where 1=1 and 列名='相应的参数',如果还选择了其他的条件,就不断在where 条件后...原创 2019-11-01 15:58:57 · 245 阅读 · 0 评论 -
Java面试:数据源 javax.sql.DataSource
DataSource数据源 是JDK1.4之后提供的用来获得连接的工厂,用来替代DriverManager。数据库连接池:是一种具体的数据源的实现方式。数据库连接池工作原理: 当服务器启动时,首先初始化一些链接放在连接池中,等待客户端请求链接,如果客户端请求链接了,首先查看连接池中是否有可用的链接,如果有则返回,如果没有则查看当前的连接数是否超过了最大可用链接,如果没有超过则创建新的链...原创 2019-07-09 09:05:56 · 1908 阅读 · 0 评论 -
关于com.mysql.cj.jdbc.Driver的问题
日常使用数据的过程中,基本没出啥问题,直到最近更新了mysql的版本之后,出现了各种莫名其妙的问题,com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中 的;而我的mysql版本是8版本的,之前是用com.mysql.jdbc.Driver , 也就是mysql-connector-java 5中的,总是出现各种问题,经过自己不断试错...原创 2019-08-10 15:56:08 · 656 阅读 · 0 评论 -
HikariCP 底层
HikariCP为什么这么快?#代码量非常小要知道对于连接池来讲,代码越少,占用cpu和内存越少,Bug出现几率也是越小,那么代表他的执行率高,这就是为什么HikariCP受欢迎的原因之一#稳定性,可靠性强HikariCP是经受了市场的考验,走过太上老君的丹炉,现如今拿到SpringBoot的入场证, 走上了人生巅峰.#速度奇快光有健壮性可不行,坦克很健壮,却跑不...原创 2019-08-22 20:54:20 · 275 阅读 · 0 评论 -
数据库:组合索引
组合索引多字段是有序的,并且是个完整的BTree 索引,有最左原则。最左原则:多列索引是先按照第一列进行排序,然后在第一列排好序的基础上再对第二列排序,如果没有第一列的话,直接访问第二列,那第二列肯定是无序的,直接访问后面的列就用不到索引了。搜索需要从根节点出发,上层节点对应靠左的值,搜索需要从根节点出发,否则不从根节点出发,后面的节点对应下层的值,依旧是乱序的,需要遍历,所以索引就失效了...原创 2020-02-19 11:27:23 · 696 阅读 · 0 评论 -
数据库:锁 总结
一. 数据库锁分类:从程序员角度分:乐观锁、悲观锁; 从数据库机制上分:共享锁、排他锁; 按照锁的粒度分:行级锁和表级锁;数据库锁出现的原因是为了处理并发问题,因为数据库是一个多用户共享的资源,当出现并发的时候,就会导致出现各种各样奇怪的问题,就像程序代码一样,出现多线程并发的时候,如果不做特殊控制的话,就会出现意外的事情,比如“脏“数据、修改丢失等问题。所以数据库并发需要使用事...原创 2019-06-15 14:41:00 · 353 阅读 · 0 评论 -
常用数据库(一)SQLite
SQLite 是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程序库中。与许多其它数据库管理系统不同,SQLite不是一个客户端/服务器结构的数据库引擎,而是被集成在用户程序中。SQLite遵守ACID,实现了大多数SQL标准。它使用动态的、弱类型的SQL语法。[4]它作为嵌入式数据库,是应用程序,如网页浏览器,在本地/客户端存储数据的常见选择。它可能是最广泛部署的数据库引擎,因原创 2018-05-05 11:10:01 · 643 阅读 · 0 评论