随笔分类 -  数据库

mysql事务隔离级别和MVCC详解
摘要:数据隔离级别。 脏写:所有数据库都解决了脏写,脏写是指写入的时候没有加锁,然后两次并发写入不会排队,然后丢失一次修改的更新。即便是redis之类的非关系型数据库也通过CAS乐观锁来解决了脏写问题。 脏读:读了没有提交的事务的修改记录,这种数据可能会回滚,这种数据是不能用的。 不可重复读:两次读取读到 阅读全文

posted @ 2023-01-09 23:31 zhangyukun 阅读(123) 评论(0) 推荐(0)

怎样才能保证注册用户名唯一
摘要:首先这可能不是一个很简单的问题,很多程序员大概会这么写 这样写有问题吗?明显,并发情况两个用户同时进入17行,都查询到 null,然后都执行22行,数据库插入了两条 同样的 userName。这写法不可用。 既然数据库会重复,那么我们就在数据库userName字段加上唯一索引,改成下面写法 现在有问 阅读全文

posted @ 2023-01-01 23:41 zhangyukun 阅读(1045) 评论(6) 推荐(0)

开窗函数 over 和分组函数和分析函数
摘要:首先说明mysql 8.0 以前不支持,oracle hive 支持 先说说分组, sql 里面 使用 group by 分组,分组以后会吧分组的 值相等的几行放到一行。行数变少。 我们先假设 user 表 有用户的名字,和所属部门 例子:select name,deptno from user g 阅读全文

posted @ 2021-06-21 16:57 zhangyukun 阅读(849) 评论(0) 推荐(0)

mongo 语法总结
摘要:1 mongo 一个分布式无模式文档数据库 2 mongo Collection相当于 mymsql 的 表, docment 相当于 mysql 的行,mongo 的 docment 是无模式的,每一行都可以 是不同格式。 3 mongo 单个 docment 最大长度 默认是 16M 。如果要使 阅读全文

posted @ 2020-04-11 17:14 zhangyukun 阅读(3227) 评论(0) 推荐(0)

mysql 索引优化 性能调优 锁
摘要:1 检查mysql 是否安装 rpm -qa|grep -i mysql 2 ntsysv 查看和设置开机启动列表 3 mysql 在 centos 上默认 的数据目录是 /var/lib/mysql 4 mysql 默认 安装配置文件在 /etc/my.cnf 5 mysql 命令所在目录 /us 阅读全文

posted @ 2019-05-03 21:43 zhangyukun 阅读(268) 评论(0) 推荐(0)

sharding sphere 分表分库 读写分离
摘要:sharding jdbc: sharding sphere 的 一部分,可以做到 分表分库,读写分离。 和 mycat 不同的 是 sharding jdbc 是 一个 jdbc 驱动 在 驱动这个层做的 分表,分库,读写分离。 mycat 是 一个数据库 中间件,或者就是一个数据库代理工具。 对 阅读全文

posted @ 2019-04-22 09:45 zhangyukun 阅读(865) 评论(0) 推荐(0)

mycat 安装 分表 分库 读写分离
摘要:简单的 理解 一下 mycat :如图 mycat 是一个 连接数据库的中介。一个独立安装的 工具,他连接着真实的数据库,并且 把自己伪装成一个数据库。 程序连接 mycat ,mycat 连接 到真实 数据库。 mycat 这个中介 帮我们管理者分布式事务,数据切片,主从数据库。 在我们程序 看到 阅读全文

posted @ 2019-04-17 23:34 zhangyukun 阅读(272) 评论(0) 推荐(0)

mysql异常 : The driver has not received any packets from the server.
摘要:异常: 结论:域名写错了或报这个异常 阅读全文

posted @ 2019-04-16 09:54 zhangyukun 阅读(1495) 评论(0) 推荐(0)

spring propagation 事务传播机制
摘要:spring 事务 传播机制 描述的 事务方法直接相互调用,父子事物开启,挂起,回滚 等的处理方式。 绿色的 那几个 我认为比较重要。 1 , @Transactional(propagation=Propagation.REQUIRED) 默认值 等于 @Transactional 有父方法传递过 阅读全文

posted @ 2019-04-15 14:44 zhangyukun 阅读(734) 评论(0) 推荐(0)

mysql 视图 安全性( mysql 表能读,但是视图不能读问题 )
摘要:安全性: 有两个选项 Definer:定义者 , 定义者有什么权限 ,访问视图的人就有什么权限 Invoker: 调用者 ,根据调用这个视图的当前用户来决定 有什么权限 采坑: 项目中有个复杂查询。1050 多行格式化后的视图sql。创建视图默认的安全性是 Definer ,也就是定义者有什么权限, 阅读全文

posted @ 2019-04-15 11:10 zhangyukun 阅读(602) 评论(0) 推荐(0)

关于mysql 的 autoCommit 参数
摘要:首先描述一下这个参数的作用。 这个参数 默认是开启的。 开启以后再命令敲的sql 会自动提交。如果关闭,就必须手动 commit。 查看 这个 自动提交状态。 SELECT @@autocommit; 零时修改这个素心 set @@autocimmit = 1; 全局修改:可以改 mysql.cnf 阅读全文

posted @ 2019-04-12 14:00 zhangyukun 阅读(1018) 评论(0) 推荐(0)

好久没考虑过的 sql 注入
摘要:很多年没考虑 sql 注入了,毕业以后 使用mybatis #{ 参数的 语法 },这个 语法已经 做了防止 sql 注入的处理 。 看到同事写的 ${ 参数 },突然 想到这个问题 。 下面聊聊 sql注入。 总结 ${ 参数 } 里面带有的 任何参数 都会被直接拼接到sql 里面 。 #{ 参数 阅读全文

posted @ 2019-03-27 14:09 zhangyukun 阅读(93) 评论(0) 推荐(0)

mysql 5.45 以后需要 需要 安全套接字问题
摘要:错误异常:According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compl 阅读全文

posted @ 2018-10-09 10:44 zhangyukun 阅读(206) 评论(0) 推荐(0)

Packet for query is too large (1660 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
摘要:原因是mysql 默认允许的 数据报包 是 1M 设置大一些就可以了 centos 下面 /ect/my.cnf 文件里面 加入或者修改 下面的参数 [mysqld] max_allowed_packet=20M 这个可以查询 允许的最大数据报包 SHOW VARIABLES LIKE '%max_ 阅读全文

posted @ 2018-08-08 16:51 zhangyukun 阅读(126) 评论(0) 推荐(0)

elastic 部分更新 retry_on_conflict 和 数据库写锁 详细比对
摘要:1 数据库的 update 在修改这条数据的的过程中(这个过程指的是 数据库执行update 到 事务提交的过程中 )为这条数据加上 写锁,阻止 别的事务 对锁定数据的修改,请求后一个修改事务的线程阻塞,直到前一个事务的完成,所以针对这条数据的 2 个修改 是一个一个来的。所以 数据库的 updat 阅读全文

posted @ 2018-07-31 22:05 zhangyukun 阅读(6744) 评论(0) 推荐(1)

mysql 事务隔离级别详解
摘要:事物的 隔离级别,说简单非常简单(新手也能说出 是个隔离级别 和 影响),说男也非常难。(很多 有几年编程 经验的程序员依旧搞不清楚) 废话不多少 直接开始: 事务的隔离级别 是用来描述 事务的读关系的,和写完全没有关系。所有数据库都不允许修改一个事务未提交的数据行。 Read Uncommitte 阅读全文

posted @ 2018-07-20 00:06 zhangyukun 阅读(287) 评论(0) 推荐(0)

mysql的一些 参数查询
摘要:1 查询 事务 超时时间: 2 查询事务隔离级别 select @@global.tx_isolation,@@tx_isolation; 3 。查看最大连接数 show variables like '%max_connections%';4 修改最大连接数 set GLOBAL max_conn 阅读全文

posted @ 2018-07-19 21:33 zhangyukun 阅读(2915) 评论(0) 推荐(0)

centos 安装 mysql(指定安装版本)
摘要:第一步: 下载 mysql 包 第二步: rpm -Uvh mysql文件名.rpm ,这里是 rpm 其实不是安装mysql ,而是安装了一个mysql 的 yum 源 仓库 /etc/yum.repos.d/mysql-community.repo 第三部: yum install -y mys 阅读全文

posted @ 2018-07-11 14:23 zhangyukun 阅读(389) 评论(0) 推荐(0)

解决mysql 8 安装后命令行可以连接,navicat不能连接的问题
摘要:错误代码: client does not support authentication 解决办法: 1 使用命令行进入数据库 2 选着数据库 mysql --> user mysql 3 alter user 'root'@'localhost' identified with mysql_nat 阅读全文

posted @ 2018-07-10 22:16 zhangyukun 阅读(2904) 评论(0) 推荐(0)

导航