数据库
侃侃而谈。句句是你
这个作者很懒,什么都没留下…
展开
-
经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!
最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下:这里为了方便演示,我新建了一个user测试表,主要有id,username,sex,address这4个字段,其中主键为id(自增),同时对username字段设置了唯一索引:01 insert ignore into即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或原创 2020-09-10 15:25:20 · 372 阅读 · 0 评论 -
为何不用 Null ,详解
Null貌似在哪里都是个头疼的问题,例如Java里有人头疼的NullPointerException,为了避免猝死及防空指针异常,千百年来程序猿们不得不在代码里小心翼翼的各种如果判断,麻烦而又臃肿,估计java8发出了可选来避免这一问题。下面咱们要聊的是MySQL里的null,在大量的MySQL优化文章和书籍里都提到了放置使用用NOT NULL,而不是NULL,除非特殊情况。而是都只给指定不说明原因,犹如鸡汤这里今天就详细的剖析下使用Null的原因,并给出一些不用Null的理由。1,NULL..原创 2020-09-10 15:22:44 · 378 阅读 · 0 评论 -
MySQL又死锁了,我不顶上,就得我背锅!
打算写一系列死锁分析的例子,将平时遇到的死锁例子记录下来,做好记录,也当做积累。# 死锁输出2017-10-10 17:07:21 7f45a5104700InnoDB: transactions deadlock detected, dumping detailed information.2017-10-10 17:07:21 7f45a5104700*** (1) TRANSACTION:TRANSACTION 47225424098, ACTIVE 0 sec starting in.原创 2020-09-10 15:18:12 · 244 阅读 · 0 评论 -
MySQL数据量大时,delete操作无法命中索引?!
最近,在脉脉上看到一个楼主提出的问题:MySQL数据量大时,delete操作无法命中索引;并且还附上了相关案例截图。最终,楼主通过开启MySQL分析优化器追踪,定位到是优化器搞的鬼,它觉得花费时间太长。因为我这个是测试数据,究其原因是因为数据倾斜,导致计算出的数据占比较大、花费时间长。大家要记住一点,一条SQL语句走哪条索引是通过其中的优化器和代价分析两个部分来决定的。所以,随着数据的不断变化,最优解也要跟着变化。因此,就需要DBA来不断的优化SQL。对于查询情...原创 2020-09-09 17:51:09 · 1628 阅读 · 0 评论 -
SQLDBX如何连接CACHE!!!
如何登录SQlDbx工具bai首先输入对应的数据du库连接类型,此处zhi最为常用的包含 MS SQLServer,Access数据库,MYSQL数据库,Oracel数据库等,这里我们讲解连dao接微软的数据库MS SQLServer(1)DBMS类型:MSSQLServer(2)Server 服务器地址:127.0.0.1(本机),如果是其他电脑请输入对应的计算机名称或者数据库实例,比如192.168.1.180等等(3)DataBase:这里可以填写也可以不填写,等登陆后再选择数据库(4)用户原创 2020-09-03 16:00:38 · 2887 阅读 · 3 评论 -
47 张图带你 MySQL 进阶!!!详解
MySQL 存储引擎存储引擎概述数据库最核心的一点就是用来存储数据,数据存储就避免不了和磁盘打交道。那么数据以哪种方式进行存储,如何存储是存储的关键所在。所以存储引擎就相当于是数据存储的发动机,来驱动数据在磁盘层面进行存储。MySQL 的架构可以按照三层模式来理解存储引擎也是 MySQL 的组建,它是一种软件,它所能做的和支持的功能主要有 并发 支持事务 完整性约束 物理存储 支持索引 性能帮助 MySQL 默认...原创 2020-09-03 15:47:19 · 291 阅读 · 0 评论 -
MySQL数据库之互联网常用分库分表方案
一、数据库瓶颈1、IO瓶颈2、CPU瓶颈二、分库分表1、水平分库2、水平分表3、垂直分库4、垂直分表三、分库分表工具四、分库分表步骤五、分库分表问题1、非partition key的查询问题2、非partition key跨库跨表分页查询问题3、扩容问题六、分库分表总结七、分库分表示例一、数据库瓶颈↑不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看原创 2020-09-02 09:22:45 · 125 阅读 · 0 评论 -
如何干掉恶心的 SQL 注入?
简介文章主要内容包括: Java 持久层技术/框架简单介绍 不同场景/框架下易导致 SQL 注入的写法 如何避免和修复 SQL 注入 JDBC介绍 全称 Java Database Connectivity 是 Java 访问数据库的 API,不依赖于特定数据库 ( database-independent ) 所有 Java 持久层技术都基于 JDBC 说明直接使用 JDBC 的场景,如果代码中存在拼接 SQL 语...原创 2020-08-28 09:47:52 · 139 阅读 · 1 评论 -
SQL必备语句大全,所有的SQL都在这里
1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server---创建 备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'---开始 备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create tab...原创 2020-08-28 09:41:38 · 2673 阅读 · 0 评论 -
总结:Oracle 递归查询
前言最近在做的业务场景涉及到了数据库的递归查询。我们公司用的 Oracle ,众所周知,Oracle 自带有递归查询的功能,所以实现起来特别简单。但是,我记得 MySQL 是没有递归查询功能的,那 MySQL 中应该怎么实现呢?于是,就有了这篇文章。文章主要知识点: Oracle 递归查询, start with connect by prior 用法 find_in_set 函数 concat,concat_ws,group_concat 函数 MyS.原创 2020-08-27 11:31:53 · 9124 阅读 · 2 评论 -
解决SpringBoot分库分表问题
一、 Sharding-jdbc简介Sharding-jdbc是开源的数据库操作中间件;定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。官方文档地址:https://shardingsphere.apache.org/document/current/cn/overview本文demo实现了分库分表功能。如有错误,欢迎各位在评论中指出。不胜感激!二、项目原创 2020-07-01 16:32:38 · 932 阅读 · 0 评论 -
MySQL事务实现原理详解
天天用事务,但是你知道MySQL事务的实现原理吗?1. 开篇相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等。今天想跟大家一起研究下事务内部到底是怎么实现的,在讲解前我想先抛出个问题:事务想要做到什么效果?按我理解,无非是要做到可靠性以及并发处理。可靠性:数据库要保证当i...原创 2020-03-08 10:36:29 · 272 阅读 · 1 评论 -
Docker 从入门到死在门里
Docker 介绍简单的对docker进行介绍,可以把它理解为一个应用程序执行的容器。但是docker本身和虚拟机还是有较为明显的出入的。我大致归纳了一下,可以总结为以下几点:docker自身也有着很多的优点,关于它的优点,可以总结为以下几项:安装docker从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。Do...原创 2020-02-26 10:02:37 · 136 阅读 · 1 评论 -
数据量的 SQL 查询优化分析
有一张流水表,未分库分表,目前的数据量为950w,分页查询使用到了limit,优化之前的查询耗时167s左右 (execution: 16s831ms, fetching: 107 ms)按照下文的方式调整SQL后,耗时347ms (execution: 163 ms, fetching: 184 ms);优化前的SQL类似这样:-- 优化前SQLSELECT 各种字段FROM `tab...原创 2020-02-24 12:17:25 · 722 阅读 · 0 评论 -
数据库不推荐使用外键的9个理由
我的经验告诉我,很多数据库(大多数我曾经使用的)不包含外键时并不总是一件坏事。在这篇文章中,我想把重点放在为什么的原因上。为什么这是一个问题?1.潜在的数据完整性问题,缺少外键明显问题是数据库不能强制进行引用完整性检查,如果在高一层没有正确处理,则可能会导致数据不一致(子行没有相应父行)。2.表格关系不清晰数据库中缺少外键的另一个不太明显的负面影响是,不了解该模式的人很难找到正确的表并找...原创 2020-02-24 11:26:42 · 373 阅读 · 0 评论 -
服务器网络配置
一服务器[root@localhost network-scripts]# cat ifcfg-eth0TYPE=EthernetBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noNAME=eth0DEVICE=eth0ONBOOT=yesIPADDR=10.0.20.15NETMASK=255.255.255.0GATEWAY...原创 2020-01-03 11:06:14 · 708 阅读 · 0 评论 -
你知道数据库连接池,底层原理是咋回事么?
这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。一、早期我们怎么进行数据库操作1、原理一般来说,Java应用程序访问数据库的过程是:①装载数据库驱动程序;②通过jdbc建立数据库连接;③访问数据库,执行sql语句;④断开数据库连接。2、代码Public void FindAllUsers(){ //1、装载sql...原创 2019-12-27 17:08:13 · 189 阅读 · 0 评论 -
软件实施工程师的经验之谈(适合新手,老鸟请指正)
干了三年实施,技术没学多少,人倒是变的圆滑多了问题1:实施干嘛的呢?说简单通俗点,开发就是研发生产电视机的,我们实施就是给买电视机的人去进行安装调试,试运行完了签验收单收款和后期的日常维护(当然,如果大公司有自己的售后服务团队就另当别论了)问题2:实施的薪资(我想大部分人都关注这个吧)以一线城市北上广为例,我在北京,第一份实施工作月薪4500,出差补助一天一百,报销路费和住宿费,不报销吃饭...原创 2019-02-14 17:41:10 · 126310 阅读 · 85 评论 -
一千行MySql从入门到精通
MySQL命令和语句挺多,全部记忆下来不现实,况且有不常用的指令。下面把大部分的指令做了记录和详细的注释。建议收藏、转发此篇文章,如果忘记可以翻出来查查。小提示:手机浏览代码可以左右滑动,建议转发此文章。Windows服务– 启动MySQLnet start mysql– 创建Windows服务sc create mysql binPath= mysqld_bin_path(注意:等号...原创 2019-12-04 12:16:46 · 163 阅读 · 0 评论 -
STUFF函数介绍及使用场景
STUFF ( character_expression , start , length ,character_expression )参数character_expression一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。start一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空...原创 2019-08-12 18:45:56 · 2876 阅读 · 0 评论