MySql
文章平均质量分 88
MySql学习笔记
yuan_404
这个作者很懒,什么都没留下…
展开
-
MySql-高级(分库分表问题简析) 学习笔记
snowflake 算法是 twitter 开源的分布式 id 生成算法,采用 Scala 语言实现,是把一个 64 位的 long 型的 id,1 个 bit 是不用的,用其中的 41 bit 作为毫秒数,用 10 bit 作为工作机器 id,12 bit 作为序列号。使用一个单独的库,这个库不做分库分表,就只有它一个,此时当系统里每次得到一个 id,都是往这个库的一个表里插入一条没什么业务含义的数据,然后获取一个数据库自增的一个 id。的,也就是说主库上并行的操作,在从库上会串行执行。原创 2023-05-23 11:17:19 · 1042 阅读 · 1 评论 -
MySql-高级( 面试问题简析) 学习笔记
B-Tree结构中是将数据存储到了节点中,因此每行存的索引就变少了(规定每行存16kb)相应的深度(阶)比B+Tree深,会造成进行IO操作过多,影响性能。其次B+Tree中的叶子节点存在指针,由于指针的存在,在范围查找时,移动指针即可,而B-Tree不行。在事务B提交之前,事务A查询的结果就已经是事务B修改后的数据。事务B提交后,事务A再一次读取,读到的是更新后的数据。事务B提交后,事务A再一次读取,读到的依旧是原始数据。事务B对 ID = 1 的数据进行修改。事务B提交前,事务A读到的是原始数据。原创 2023-04-19 17:10:44 · 469 阅读 · 0 评论 -
MySql-高级(分库分表-Mycat) 学习笔记
尚硅谷-MySql-高级思维导图:思维导图(mmap+HTML格式)我下载 Mycat 的地址:Mycat 官网Mycat 官网的指导书:Mycat 权威指南1. Mycat 介绍1. 定义是数据库中间件一端连接 数据库,一端连接 java 程序2. 作用读写分离因为读的请求一般比写的请求多得多,所以需要将读写分离,可以写操作一台主机,读操作多台主机数据分片垂直拆分水平拆分垂直+水平拆分多数据源整合可以整个多个不同的数据源一个java原创 2020-08-08 17:26:01 · 283 阅读 · 0 评论 -
MySql-高级(主从复制) 学习笔记
尚硅谷-MySql-高级思维导图:思维导图(mmap+HTML格式)1. 基本原理MySQL 的复制是异步的、串行化的1. 三步骤主机(master) 将 改变 记录到二进制日志(binary log)。这些记录过程叫二进制日志事件(binary log events)从机(slave) 从 主机(master)读取 binlog ,并拷贝到它的中继日志中(relay log)从机(slave)重做中继日志中的事件,将改变应用到自己的数据库中复制的原则 :MySQL 的复制是异原创 2020-08-06 16:09:54 · 194 阅读 · 0 评论 -
MySql-高级(锁机制) 学习笔记
尚硅谷-MySql-高级思维导图:思维导图(mmap+HTML格式)1. 概述1. 定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。2. 举例打个比方,我们到淘宝上买一件商品,商品只有一件库存,这个时候如果还有另原创 2020-08-06 14:32:29 · 124 阅读 · 0 评论 -
MySql-高级(视图) 学习笔记
1. 视图是什么将一段查询 SQL 封装成一个虚拟表这个虚拟表只会保存 SQL 逻辑,不会保存任何查询结果2. 视图作用封装复杂的 SQL 语句,提高复用性逻辑放在数据库上,更新不需要发布程序,面对频繁的需求变更更灵活3. 视图使用范围很多地方可以公用的一组查询结果报表4. 视图的语法创建# CREATE OR REPLACE 表示创建或更新CREATE OR REPLACE VIEW 视图名 AS SELECT 列名FROM 表名WHERE 条件;使用原创 2020-08-06 13:47:42 · 140 阅读 · 0 评论 -
MySql-高级(查询截取分析) 学习笔记
1. 前言在实际的应用中、面对实际的项目系统时,不需要对所有的 SQL 都建立索引,费时费力。只需要统计出系统中,使用频率最高的 、查询时间最慢的 一些 SQL 语句即可,也就是“八二原则”,处理 20% 的 SQL,达到 80% 的优化。统计出 这些 SQL 语句,用到的方法大致为 : 1. 慢查询日志;2. show processlist一般这项工作由运维人员进行,这里至少大致了解。2. 慢查询日志1. 定义MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中原创 2020-08-05 16:40:14 · 103 阅读 · 0 评论 -
MySql-高级(索引优化分析) 学习笔记
1. 前言为什么系统性能下降( sql 执行慢、执行时间长、等待时间长)数据过多 —— 当单表数据量快要达到 500 万条瓶颈时,分库分表关联的表太多(使用太多 join) —— SQL 优化没有充分利用索引 —— 优化索引建立服务器调优及呵呵参数设置 —— 调整 my.cnf优化索引是效果较好的,最重要的。2.简单回顾多表查询3.索引介绍3.1 概念索引是帮助 MySQL高效获取数据的结构,可以理解为,排好序的快速查找数据结构3.2 优势查询速度快排序速度很快3原创 2020-08-02 16:18:53 · 392 阅读 · 0 评论 -
MySql-高级(MySQL的框架介绍) 学习笔记
1. 安装 MySql 后的一些问题1.1 字符乱码问题在 MySql 配置文件加入字符编码character_set_server=utf8重启 MySql 服务器修改已存在的数据库的字符集alter database 数据库名 character set 'utf8';修改数据表的字符集alter table 表名 convert to character set 'utf8';1.2 权限修改查看权限(\G : 按列显示)select * from user原创 2020-08-02 13:34:48 · 164 阅读 · 0 评论 -
MySql 复习笔记
1. MySql 查询1.1 关键字(函数),及其作用distinct —— 去重()在需要去重的列名前加上 distinct 即可。例: select distinct bookClass from bookconcat(’ ##’,’## ',······)—— 拼接字符串在 ## 处 填入需要 拼接的字符即可,如果在拼接的字符串中有一个为 null 则结果为 null。例: select concat(‘lastName’,‘firstName’) as name from na原创 2020-07-29 15:23:08 · 344 阅读 · 0 评论