Mysql
胡晗-
不定期更新
展开
-
Mysql锁与事务隔离级别
1、锁定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。2、锁分类*从性能上分为乐观锁(用版本对比来实现)和悲观锁*从对数据库操作的类型分,分为读锁和写锁(都属于悲观锁) 读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响原创 2020-08-14 15:20:31 · 106 阅读 · 0 评论 -
mysql索引优化实战
分页查询优化(深翻页)很多时候我们业务系统实现分页功能可能会用如下sql实现select * from employees limit 10000,10;表示从表 employees 中取出从 10001 行开始的 10 行记录。看似只查询了 10 条记录,实际这条 SQL 是先读取 10010条记录,然后抛弃前 10000 条记录,然后读到后面 10 条想要的数据。因此要查询一张大表比较靠后的数据,执行效率是非常低的。1、根据自增且连续的主键排序的分页查询首先来看一个根据自增且连续主键排序的分页原创 2020-08-14 15:18:21 · 151 阅读 · 0 评论 -
MySql如何选择合适的索引
EXPLAIN SELECT * from t_pay_invoice where supplier_code >= ‘GYS00001’;如果用idx_supplier_code索引需要遍历supplier_code字段索引树,然后还需要根据遍历出来的主键值去主键索引树里再去查出最终数据,成本比全表扫描还高,可以用覆盖索引优化,这样只需要遍历supplier_code字段的索引树就能拿到所有结果,如下:EXPLAIN SELECT supplier_code from t_pay_invoic原创 2020-08-05 20:42:18 · 348 阅读 · 1 评论 -
Mysql explain详解和索引实践
Explain工具介绍使用explain关键字可以查询优化器执行SQL的执行计划Explain中的列1.id列id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。id列越大执行优先级越高,id相同则从上往下执行,id为NULL最后执行。2.select_type列select_type 表示对应行是简单还是复杂的查询。simple:简单查询。查询不包含子查询和unionprimary:复杂查询中最外层的 selec原创 2020-08-05 20:27:02 · 252 阅读 · 0 评论 -
DataX 3.0初体验
1.Datax是什么DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。2.设计理念为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到原创 2020-07-30 19:35:06 · 747 阅读 · 0 评论 -
MySql索引底层数据结构与算法
一、索引数据结构索引是帮助MySQL高效获取数据的排好序的数据结构二叉树特点:左子树小于右子树缺点:如果存储自增数据,二叉树会退化成链表,查询效率低红黑树特点:自平衡二叉树,树高相对平衡,不会出现极端情况性质1. 节点是红色或黑色。性质2. 根节点是黑色。性质3.所有叶子都是黑色。(叶子是NUIL节点)性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)性质5… 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。从根到叶子的最原创 2020-07-30 19:24:49 · 130 阅读 · 0 评论