Skip to main content

moregeek program

sql数据分析—查询银行账户余额明细列表_吴明课堂的博客-多极客编程

从系统导出了公司银行卡的初期信息和收款付款明细数据,接下来要用SQL去对它做查询和分析。一. 已有数据图示:账户期初金额收款明细付款明细​二. 查询目标数据列表图示:想要实现的查询结果​三. 银行余额算法逻辑说明:上期结转金额(查询结果第一行的银行余额) = 查询日前一日的余额,本处业务发生日为2022/07/01,所以上期结转金额等于期初金额。若查询开始日为2022/08/01,则上期结转金额为

Read More

docker mysql8修改root密码方法_winjayx的博客-多极客编程

Docker MySQL8修改root密码方法 1. 启动脚本信息 [root@mysql]# cat docker_start_Mysql_WinJay.sh docker rm -f MySQL8.0_DB docker container run -d \ --volume /etc/localtime:/etc/localtime:ro \ --volume `pwd`/

Read More

如何实现数据库读一致性_京东云官方的博客-多极客编程

1 导读数据的一致性是数据准确的重要指标,那如何实现数据的一致性呢?本文从事务特性和事务级别的角度和大家一起学习如何实现数据的读写一致性。2 一致性1.数据的一致性:通常指关联数据之间的逻辑关系是否正确和完整。举个例子:某系统实现读写分离,读数据库是写数据库的备份库,小李在系统中之前录入的学历信息是高中,经过小李努力学习,成功获得了本科学位。小李及时把信息变成成了本科,可是由于今天系统备份时间较长

Read More

数据火器库 - 八卦系列之借老枪谈可靠性_阿里云情报局的博客-多极客编程

​​来源:云数据库技术​​数据库打工仔喃喃自语的八卦1. 老枪:Db2/z和可靠性2. K.I.S.S (Keep it Simple, Stupid!)3. 系统验证和测试:猪肉出厂的质检章数据库的可靠性1、数据库里的老枪 - Db2 for zOS上次聊了瑞士军刀SQLite, 从年纪上SQLite出生于大数据和手机时代之前,对比后来的大数据引擎和云原生数据库,SQLite可谓个头不大,辈分不

Read More

lua脚本在redis事务中的应用实践_京东云官方的博客-多极客编程

使用过Redis事务的应该清楚,Redis事务实现是通过打包多条命令,单独的隔离操作,事务中的所有命令都会按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务中的命令要么全部被执行,要么全部都不执行(原子操作)。但其中有命令因业务原因执行失败并不会阻断后续命令的执行,且也无法回滚已经执行过的命令。如果想要实现和MySQL一样的事务处理可以使用Lua脚本来实现,Lua脚本中

Read More

mysqldump备份期间做ddl会发生什么_mysql dba攻坚之路的博客-多极客编程

MDL锁当对一个表做增删改查操作的时候,加 MDL 读锁;当要对表做结构变更操作的时候,加 MDL 写锁。MDL 会直到事务提交才释放,在做表结构变更的时候,你一定要小心不要导致锁住线上查询和更新。读写互斥读锁之间不互斥,因此你可以有多个线程同时对一张表增删改查。读写锁之间、写锁之间是互斥的,用来保证变更表结构操作的安全性。因此,如果有两个线程要同时给一个表加字段,其中一个要等另一个执行完才能开始

Read More

mysql巡检查看参数_mysql dba攻坚之路的博客-多极客编程

锁等待Innodb_row_lock_current_waits 当前等待的待锁定的行数Innodb_row_lock_waits 一行锁定必须等待的总时长Table_locks_waited 表锁等待次数 mysql 锁监控表级锁 Table_locks_waited Table_locks_immediate行级锁 Innodb_row_lock_current_waits 当前等

Read More

mysql参数优化_mysql dba攻坚之路的博客-多极客编程

max_connections(1)简介Mysql的最大连接数,如果服务器的并发请求量比较大,可以调高这个值,当然这是要建立在机器能够支撑的情况下,因为如果连接数越来越多,mysql会为每个连接提供缓冲区,就会开销的越多的内存,所以需要适当的调整该值,不能随便去提高设值。(2)判断依据show variables like 'max_connections'; +--------------

Read More

mysql--gtid是什么_mysql dba攻坚之路的博客-多极客编程

GTID作用主从环境中主库的dump线程可以直接通过GTID定位到需要发送的binary log的位置,而不需要指定binary log的文件名和位置,因而切换极为方便。GTID实际上是由UUID+TID (即transactionId)组成的。其中UUID(即server_uuid) 产生于auto.conf文件(cat /data/mysql/data/auto.cnf),是一个MySQL实例

Read More

mysql优化案例--limit优化_mysql dba攻坚之路的博客-多极客编程

案例SQL生产有这样一条sql,其中val是辅助索引select * from test where val=4 limit 300000,5;​查询原理查询过程:查询到索引叶子节点数据。根据叶子节点上的主键值去聚簇索引上查询需要的全部字段值。类似于下面这张图:像上面这样,需要查询300005次索引节点,查询300005次聚簇索引的数据,最后再将结果过滤掉前300000条,取出最后5条。MySQL

Read More

一步步搞懂mysql元数据锁(mdl)_京东云官方的博客-多极客编程

某日,路上收到用户咨询,为了清除空间,想删除某200多G大表数据,且已经确认此表不再有业务访问,于是执行了一条命令‘delete from bigtable’,但好长时间也没删完,经过咨询后,获知drop table删除表速度快,而且能彻底释放空间,于是又在另外一个session中执行了‘drop table bigtable’命令,但是这个命令并没有快速返回结果,光标一直hang在原地不动。最后

Read More

事务基础知识_大鱼的博客-多极客编程

一、数据库事务概述 1.1 存储引擎支持情况 SHOW ENGINES命令来查看当前MySQL支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。 1.2 基本概念 事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。 事务处理的原则:保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),

Read More

mysql 中的锁机制_飞鱼的博客-多极客编程

介绍锁机制 技术是为了解决问题而生的,锁被用来实现隔离性,保证并发事务的正确性。 两段锁 & 一次封锁 两段锁 数据库遵循的是两段锁协议,将事务分成两个阶段,加锁阶段和解锁阶段(所以叫两段锁) 加锁阶段:在加锁阶段只能进行加锁操作。 如果事务要读取对象,必须先获得共享锁。可以有多个事务同时获得一个对象的共享锁 如果事务要修改对象,必须先获得独占锁。只能有一个事务获得对象的独占锁。如果

Read More

mysql--sql优化案例_mysql dba攻坚之路的博客-多极客编程

问题现象遇到的一个case,case发现某一个用户的某个操作总是超时,排查发现超时的原因是因为sql超时。sql大概长这样:select * from 表 where userid =123 and sign='T' and type='M' order by id desc limit 0,20,执行发现这个sql执行并返回竟然需要四十多秒。问题分析为什么一个sql会突然变得这么慢呢,其实第一个

Read More

mysql常用的几个reset_mysql dba攻坚之路的博客-多极客编程

reset master删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库。​注意: reset master 不同于purge binary log的两处地方1.reset master 将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件 起始值从000001 开始,然而p

Read More

mysql索引优化_mysql dba攻坚之路的博客-多极客编程

判断索引选择性好坏可以使用 show index from table_name方法,看到一个索引的基数。“基数”(cardinality)越大,索引的区分度越好。 show index from *****;+---------------------+------------+-------------+--------------+--------------+-----------+---

Read More

io性能瓶颈优化--组提交_mysql dba攻坚之路的博客-多极客编程

二阶段提交二阶段提交步骤1、更新操作记录到 redo log 里面,此时 redo log 处于 prepare 状态。 2、然后告知执行器执行完成了,随时可以提交事务。执行器生成这个操作的 binlog,并把 binlog 写入磁盘。 3、执行器调用引擎的提交事务接口,引擎把刚刚写入的 redo log 改成提交(commit)组提交我们知道redo的组提交是mysql自己就默认的,在并发更新场

Read More

多版本并发控制 mvcc_飞鱼的博客-多极客编程

介绍多版本并发控制 多版本并发控制技术(Multiversion Concurrency Control,MVCC) 技术是为了解决问题而生的,通过 MVCC 我们可以解决以下几个问题: 读写之间阻塞的问题:通过 MVCC 可以让读写互相不阻塞,即读不阻塞写,写不阻塞读,这样就可以提升事务并发处理能力。 降低了死锁的概率:这是因为 MVCC 没有使用锁,读取数据时并不需要加锁,对于写操作,也只锁

Read More

mysql回收表空间_mysql dba攻坚之路的博客-多极客编程

mysql表空洞delete导致的表空洞delete 命令其实只是把记录的位置,或者数据页标记为了“可复用”,但磁盘文件的大小是不会变的。也就是说,通过 delete 命令是不能回收表空间的。这些可以复用,而没有被使用的空间,看起来就像是“空洞”。insert导致的表空洞如果数据是按照索引递增顺序插入的,那么索引是紧凑的。但如果数据是随机插入的,就可能造成索引的数据页分裂。怎么清理空洞重建表试想一

Read More

浅谈mysql--sorted index builds_mysql dba攻坚之路的博客-多极客编程

索引创建概述在早期的MySQL版本,创建索引是需要复制整表数据的;在5.5版本中,MySQL利用快速创建索引(fast index creation)技术,优化了索引的创建算法,使其执行时不需要再进行复制表数据的操作,同时允许在创建索引时,其他事务并发读;而在5.6以上的版本,在创建索引时允许其他事务并发读写,并将此索引创建方式称为Sorted Index Builds。以下介绍一下5.5前后版本

Read More