随笔分类 - 数据库
摘要:优质博文:IT-BLOG-CN 一、四大特性 事务可以看作一个整体,里面的内容要么都执行成功,要么都不成功。不可能存在部分执行成功而部分执行不成功的情况。在MySQL中,常见的存储引擎有InnoDB、Myisam,Memory等。其中InnoDB支持事务transaction,而Myisam,Mem
阅读全文
摘要:优质博文:IT-BLOG-CN 一、binlog binlog记录数据库表结构和表数据变更,比如update/delete/insert/truncate/create,它不会记录select。存储着每条变更的SQL语句和XID事务Id等等。binlog日志文件如下: [root@192.168.1
阅读全文
摘要:一、字符控制函数 函数 结果 CONCAT('Hello','World') HelloWorld SUBSTR('HelloWorld',1,5) Hello LENGTH('HelloWorld') 10 INSTR('HelloWorld','W') 6 LPAD(salary,10,'*')
阅读全文
摘要:一、视图 从表中抽出的逻辑上相关的数据集合,视图是一种虚表,视图是建立在已有表的基础之上,视图赖以建立的这些表称为基表。向视图提供数据的是 SELECT 语句,可以将视图理解为存储起来的 SELECT 语句。视图中的数据会随着基表的变化而变化。 那为什么要使用视图呢? 1)、控制数据访问 2)、简化
阅读全文
摘要:Oracle 公司是世界上最大的信息管理软件及服务提供商,因其复杂的关系数据库产品而闻名。Oracle 的关系数据库是世界上第一个支持 SQL 语言的数据库。支持服务器/客户机等部署。Oracle 数据库管理系统是目前世界上最流行的一款关系型数据库管理系统。 一、Oracle 数据库体系结构简介 平
阅读全文
摘要:更多内容,前往 IT-BLOG 一、行转列问题 现有表格A,按照以下格式排列; 姓名 收入类型 收入金额 Tom 年奖金 5w Tom 月工资 10k Jack 年奖金 8w Jack 月工资 12k 先需要将表格转化为: 姓名 月工资 年奖金 Tom 10k 50k Jack 12k 80k 方法
阅读全文
摘要:优质博文:IT-BLOG-CN 一、数据库隔离级别 【1】Read Uncommitted(读取未提交内容):出现脏读,也就是可能读取到其他会话中未提交事务修改的数据。【2】Read Committed(读取已提交内容):不可重复读,只能读取到已经提交的数据。Oracle 等数据库默认的隔离级别。【
阅读全文
摘要:慢日志分析流程如下:【1】观察(至少跑一天),看看生产慢 SQL 情况。【2】开启慢查询日志,设置阈值,比如对超过5秒的 SQL 语句进行抓取。【3】explain+慢 SQL 分析。【4】show profile 查询慢 SQL 在 MySQL 中的执行细节和生命周期情况。【5】运维经理 or D
阅读全文
摘要:更多内容,前往 IT-BLOG explain关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理 SQL 语句的。分析查询语句或表结构的性能瓶颈。执行语句:explain + SQL语句。表头信息如下: 一、ID 参数 select 查询的序列号,包含一组数字,表示查询中
阅读全文
摘要:更多内容,前往 IT-BLOG 复制功能是构建 MySQL 的大规模、高性能的基础,也就是所谓的 “水平扩展” 架构。我们可以通过为服务器配置一个或多个备库。同时,复制也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。MySQL主从基本原理,主要形式以及主从同步延迟原理 (读写分离)导
阅读全文
摘要:一、为什么要备份 【1】容灾恢复:硬件故障、不经意的 Bug 导致数据损坏,或者服务器及其数据由于某些原因不可获取或无法使用等(例如:机房大楼烧毁,恶意的黑客攻击或 Mysql 的 Bug 等)。【2】人们改变想法:很多人经常会在删除某些数据后,又想恢复这些数据。【3】审计:有时需要知道数据或 Sc
阅读全文
摘要:如果把查询看作是一个任务,那么它由一些列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数。通常来说,查询的生命周期大致可以按照顺序来看:从客户端到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其
阅读全文
摘要:索引有很多种类型,为不同的场景提供更好的性能。在MySQL中,索引是在存储引擎层而不是服务器层实现。不同存储引擎的索引其工作方式并不一样。也不是所有存储引擎都支持所有类型的索引。即使多个存储引擎支持同一种类型的索引,其底层实现也可能不同。 一、B-Tree 索引 我们通过提到索引时,多半说的都是 B
阅读全文
摘要:定义:锁是计算机协调多个进程或线程并发访问某一资源的机制。 一、表锁(偏读) MyISAM 引擎,开销小,加锁快,无死锁、锁定粒度大、发生锁冲突的粒度最高,并发度低。 【1】手动增加表锁:lock table 表名1 read(write),表名2 read(write),其他;【2】查看那些表加锁
阅读全文
摘要:查询的生命周期大致可以按照顺序来看:从客户端到服务端,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中 “执行” 可以认为是整个生命周期中最重要的阶段,其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序分组等。当希望 MySQL 能够以高性能的方式运行查询时
阅读全文
摘要:一、优化器索引 【1】 隐藏索引(invisible index):在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用,但仍需要维护。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这
阅读全文
摘要:优质博文:IT-BLOG-CN 一、设计原则 原则: SQL开发规范制定是基于良好的编码习惯和可读性; 目的: 消除冗余,数据简约,提高效率,提高安全; 【1】禁止在线上生产环境做数据库压力测试,全链路压测可以支持,但是一定不要在业务高峰期搞压力测试。 【2】禁止在数据库中明文存储密码和敏感信息,可
阅读全文
摘要:在分析案例之前,我们先了解一下MySQL INNODB。在MySQL INNODB引擎中主键是采用聚簇索引的形式,即在B树的叶子节点中既存储了索引值也存储了数据记录,即数据记录和主键索引是存在一起的。而普通索引的叶子节点存储的只是主键索引的值,一次查询找到普通索引的叶子节点后,还要根据叶子节点中的主
阅读全文