随笔分类 -  数据库

mysql的独占锁和共享锁
摘要:当有多个事务同时更新一条sql时,mysql是如何处理的呢?很显然,使用加锁的方式,一个事务获得了锁,进行操作,其他事务排队一个个等着,等当前这个事务执行完释放锁,其他事务获取锁取到锁的进行操作。这里的锁就是独占锁,也就是X锁。 那么如果有查询这一行数据时,是要加锁吗?不是的,mysql为了提高性能 阅读全文

posted @ 2020-05-17 23:28 东篱闲菊 阅读(1192) 评论(0) 推荐(1)

MySQL如何实现 XA 规范
摘要:一、前言 我们提交一个事务,里面有多条sql,mysql是如何管理事务的呢?是如何做到其中一条sql执行失败,全部回滚的呢? 二、XA事务 XA协议是基于二阶段提交的一个具体实现,也是分为Prepare和Commit两个阶段。 Prepare阶段:TM(事务协调者)向所有RM(资源管理者)发送pre 阅读全文

posted @ 2020-05-16 18:02 东篱闲菊 阅读(1327) 评论(0) 推荐(0)

mysql的MVCC机制
摘要:一、undo log版本链 我们在执行update,insert,delete的时候会生成undo log日志,以防止回滚使用。 一条sql执行,会生成一条undo log日志: 其中trx_id就是执行这条sql的事务id,roll_pointer指向对同一个值修改的undo log日志,因为当前 阅读全文

posted @ 2020-04-20 00:16 东篱闲菊 阅读(458) 评论(0) 推荐(0)

初识mysql的innodb存储引擎
摘要:上一篇讲到sql提交到存储引擎了,由存储引擎操作内存或磁盘中的数据。 这一篇就开始将接下来的innodb存储引擎是如何处理数据的。 需要执行一条sql: update name=lisi where id =1; 第一步:查询数据 innodb首先需要定位到这条数据所在的位置,如果内存中有则直接定位 阅读全文

posted @ 2020-01-27 00:22 东篱闲菊 阅读(141) 评论(0) 推荐(0)

初识mysql架构设计
摘要:一、应用系统如何与mysql进行一次交互? 最开始接触jdbc的时候,我们系统如何完成一次sql操作呢?第一步,建立数据库连接;第二步,操作sql;第三步,释放连接。 但是每次建立与数据库的连接非常耗时和资源,所以我们加入了连接池的概念。第一步的获取连接是从连接池中获取一个可用的连接,第三步的释放连 阅读全文

posted @ 2020-01-25 22:37 东篱闲菊 阅读(220) 评论(0) 推荐(0)

PLS-00357: Table,View Or Sequence reference 'SEQ_TRADE_RECODE.NEXTVAL' not allowed in this context
摘要:oracle数据库:为了使ID自增,建了序列后,创建触发器:create or replace TRIGGER TRIG_INSERT_TRADE_RECODE BEFORE INSERT ON TRADE_RECODE FOR EACH ROW BEGIN :NEW.ID:=SEQ_TRADE_R... 阅读全文

posted @ 2014-09-11 15:07 东篱闲菊 阅读(991) 评论(0) 推荐(0)

ORA-12154: TNS:could not resolve the connect identifier specified
摘要:从文件连接数据库,连接字符串是finance/oracle@orcl 其中 finance是用户名,oracle是密码,orcl是实例名。发现这个问题:ORA-12154: TNS:could not resolve the connect identifier specified。TNS:无法解析... 阅读全文

posted @ 2014-08-28 10:44 东篱闲菊 阅读(1322) 评论(0) 推荐(0)

the network could not establish the connection
摘要:为了方便建表等操作,我用sql developer 连接linux 底下的数据库,可连接时出现了这个问题the network could not establish the connection。检查了一下防火墙也关了,也ping的通,没理由啊,上网查了一大堆,发现大家都说到了listener.o... 阅读全文

posted @ 2014-08-27 17:37 东篱闲菊 阅读(1275) 评论(0) 推荐(0)

ORA-00942: table or view does not exist
摘要:select * from business;ERROR at line 1:ORA-00942: table or view does not exist要改成表空间.表名比如这样select * from finance.business;就ok了 阅读全文

posted @ 2014-08-27 11:48 东篱闲菊 阅读(6763) 评论(0) 推荐(0)