数据库
文章平均质量分 70
mysql
牧竹子
且行且珍惜
展开
-
mysql插入更新insert into
1.如果表中不存在主键记录,replace和insertupdate都与insert是一样的特点。2.如 果表中存在主键记录,replace相当于执行delete 和 insert两条操作,而insertupdate的相当于执行if exist do update else do insert操作。因此,如果replace填充的字段不全,则会导致未被更新的字段都会修改为默认值,并且如果有自增id的话,自增id会变化为最新的 值(这样如果是以自增id为标志的话可能导致记录丢失);原创 2023-07-06 09:46:05 · 1084 阅读 · 0 评论 -
Seata分布式事务AT、TCC、SAGA、XA模式
可以看出,除了TCC基本都是两阶段模式,成功提交,失败回滚。而根据实现难度,TCC和SAGA都需要手动实现业务回滚代码,复杂度要高一些。其他都可以有数据库或者第三方事务管理器实现回滚业务流程,而你只需要专注业务流程本身。AT,SAGA模式需要所有参与方都有数据库权限,这点如果项目参与方都是一起的不涉及第三方或许可以实现。但如果你调用的是第三方服务,显然不可能支持,第三方更不可能给你提供数据库访问权限,比如支付服务,任何第三方支付都不可能提供数据库权限给你。原创 2023-05-29 14:38:32 · 853 阅读 · 0 评论 -
MySQL执行计划extra中常见类型using index 和 using where using index 的区别
MySQL执行计划extra中的using index 和 using where using index 的区别。mysql执行计划中的extra列中表明了执行计划的每一步中的实现细节,其中包含了与索引相关的一些细节信息。其中跟索引有关的using index 在不同的情况下会出现。原创 2023-03-20 16:39:20 · 688 阅读 · 0 评论 -
mysql驱动表与被驱动表及join优化
MySQL 表关联的算法是 Nest Loop Join,是通过驱动表的结果集作为循环基础数据,然后一条一条地通过该结果集中的数据作为过滤条件到下一个表中查询数据。忘了补充一句,也可以通过EXPLAIN分析来判断在sql中谁是驱动表,EXPLAIN语句分析出来的第一行的表即是驱动表。3.当使用join时,mysql会选择数据量比较小的表作为驱动表,大表作为被驱动表。如果A表,B表数据量差不多大的时候,那么选择谁作为驱动表也是无所谓了。1.当使用left join时,左表是驱动表,右表是被驱动表。转载 2023-03-20 14:13:54 · 2056 阅读 · 0 评论 -
java对mysql查询特殊字符转义
日在使用mysql的like查询用户时,当用户姓名中含有" ’ “,”%","_",,""等特殊符号时,按以往的查询方式,并不能得出想要的结果。查阅资料得知:在遇到这些特殊字符时,需要对字符进行转义。‘:用于包裹搜索条件,需转为’;%:用于代替任意数目的任意字符,需转换为%;_:用于代替一个任意字符,需转换为_;\:转义符号,需转换为\\。 public class RequstUtils { /** * special char handle * ':用于原创 2020-12-28 14:22:57 · 3630 阅读 · 0 评论 -
INSERT ... ON DUPLICATE KEY UPDATE
网上关于INSERT … ON DUPLICATE KEY UPDATE大多数文章都是同一篇文章转来转去,首先这个语法的目的是为了解决重复性,当数据库中存在某个记录时,执行这条语句会更新它,而不存在这条记录时,会插入它。相当于 先判断一条记录是否存在,存在则update,否则insert。其语法是:INSERT INTO tablename(field1,field2, field3, ......原创 2019-12-04 15:00:23 · 336 阅读 · 0 评论 -
安装PowerDesigner16使用mysql8.0的ODBC导入数据库模型
安装PowerDesigner16PowerDesigner161.找到下载的破解文件并复制 16.5PJ 文件 pdflm16.dll2.找到软件的安装路径,例如我的是D盘下的powerdesign文件夹3.将复制的破解文件粘贴到改目录,会提示是否替换,替换就行ODBC数据源PW只使用32位的mysql 8.0 选择32位的Windows (x86, 32-bit), MSI Ins...原创 2019-11-25 09:52:12 · 8357 阅读 · 0 评论 -
MySQL之MVVC简介
MySQL之MVVC简介一丶什么是MVVC? MVVC (Multi-Version Concurrency Control) (注:与MVCC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)是一种基于多版本的并发控制协议,只有在InnoDB引擎下存在。MVCC是为了实现事务的隔离性,通过版本号,避免同一数据在不同事务间的竞争,你可以把它当成基于多版...转载 2019-09-26 10:15:47 · 1034 阅读 · 1 评论 -
mysql日志文件和数据恢复
binlog 基本认识MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Replication在Maste...原创 2019-09-17 16:16:17 · 956 阅读 · 0 评论 -
阿里云CentOS7 64位下安装MySQL5.7
文章目录安装myslq下载mysql源安装包卸载默认的低版本安装mysql修改root本地登录初始密码默认配置文件的路径安装myslq下载mysql源安装包shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装mysql源shell> yum localinstal...原创 2019-09-08 17:41:05 · 134 阅读 · 0 评论 -
Mysql常见考点
MySQL架构组成2.MySQL备份和恢复3.MySQL查询和慢查询日志分析4.MySQL索引优化5.MySQL存储引擎优化6.MySQL锁机制优化7.MySQL高可用设计8.MySQL集群SQL分类:DDL DML DCL一、DDL(数据库定义语言)定义不同的数据段、数据库、表、列、索引等数据库对象,常用语句关键字:create drop alter等二、DML(数据...原创 2019-05-07 23:31:12 · 1055 阅读 · 0 评论 -
MySQL同步机制、主从复制半同步和双主配置
复制架构衍生史在谈这个特性之前,我们先来看看MySQL的复制架构衍生史。在2000年,MySQL 3.23.15版本引入了Replication。Replication作为一种准实时同步方式,得到广泛应用。这个时候的Replicaton的实现涉及到两个线程,一个在Master,一个在Slave。Slave的I/O和SQL功能是作为一个线程,从Master获取到event后直接apply,没有r...转载 2019-03-06 12:01:13 · 3990 阅读 · 0 评论 -
mysql主从复制实操
主从复制简介MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,...原创 2019-02-28 18:57:52 · 304 阅读 · 0 评论 -
分库分表
一. 数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分...转载 2019-02-14 16:48:22 · 180 阅读 · 0 评论 -
悲观锁,乐观锁,redis+lua分布式锁的数据库案例讲解
超发问题分析针对抢到红包案例,用户抢到红包后,红包总量应-1,当多个用户同时抢红包,此时多个线程同时读得库存为n,相应的逻辑执行后,最后将均执update T_RED_PACKET set stock = stock - 1 where id = #{id} ,很明显这是错误的。锁的概念悲观锁(包括 排它锁,分享锁 for update)悲观锁是一个统称的概念它的特点是先获取锁,再进行...转载 2018-12-06 13:16:10 · 2008 阅读 · 0 评论 -
MySQL5.7+ 解压缩版安装配置方法
mysql> show variables like “%case%”; +————————-+——-+ | Variable_name | Value | +————————-+——-+ | lower_case_file_system | OFF | | lower_case_table_names | 0 | +————————-+——-+原创 2017-09-20 09:50:56 · 1524 阅读 · 0 评论 -
mysql explain执行计划
mysql explain执行计划mysql> EXPLAIN SELECT * FROM t_item i LEFT JOIN t_sku s ON i.item_id=s.item_id LEFT JOIN t_sku_stock t on s.sku_id =t.sku_id;+----+-------------+-------+--------+---------------原创 2017-03-10 17:01:55 · 902 阅读 · 1 评论 -
mysql:Mysql Got error 28 from storage engine
问题操作系统分析日志查找问题解决办法问题java.sql.SQLException: Error writing file ‘/tmp/MYkn6JQ8’ (Errcode: 28)Mysql Got error 28 from storage engine错误 磁盘临时空间不够导致。操作系统centos 7分析日志查找问题由于mysql默认安装在系统盘,因此时间长了就会把系统盘占满从而导原创 2017-02-24 18:05:01 · 569 阅读 · 0 评论