摘要:思考一个问题:下面一条简单的SQL,它加什么锁? delete from t1 where id = 10; 带着你的答案,我们继续往下看。如果要分析上述SQL的加锁情况,必须了解这个SQL的执行前提,MySQL的隔离级别是什么?id列是不是主键?id列有没有索引?前提不同加锁处理的方式也不同。可能
阅读全文
摘要:select查询语句是不会加锁的,但是select ….for update除外。 问题: select …….for update加的是行锁还是表锁? 带着问题我们继续往下看。 验证: 建表sql 关闭自动提交: 案例一(主键): 开启第一个事务: 第二个事务去更新数据,被阻塞了,长时间拿不到锁报
阅读全文
摘要:Table 10.2 Keywords and Reserved Words in MySQL 5.7 ACCESSIBLE (R) ACCOUNT[a] ACTION ADD (R) AFTER AGAINST AGGREGATE ALGORITHM ALL (R) ALTER (R) ALWAY
阅读全文
摘要:首先说明一下MySQL的版本: 表结构: id为自增主键,val为非唯一索引。灌入大量数据,共500万 我们知道,当limit offset rows中的offset很大时,会出现效率问题: 为了达到相同的目的,我们一般会改写成如下语句: 时间相差很明显。为什么会出现上面的结果?我们看一下selec
阅读全文
摘要:之所以有这个题目,我既不是故意吸引眼球,也不想在本文对存储过程进行教科书般论述。 《阿里巴巴Java开发手册》是这样规定的: 再结合我最近项目中遇到的存储过程问题,所以今天我打算来聊一聊这个问题。 这事儿要从去年在武汉出差时一位同事的发问说起。 问题是这样的: 我觉得存储过程挺好用的,你为什么不建议
阅读全文
摘要:【前言】 经常有一些朋友向我咨询,如何写出高效的SQL,这不是三言两语能说得清的,索性认真来写一下,增删查改方面的知识我不再赘述,如果有基础薄弱的同学,可以好好的补一补再来看。 以MySQL为基础,MySQL调优篇内容主要包含MySQL逻辑架构、索引知识、表关联算法、explain执行计划解读及SQ
阅读全文
摘要:【前言】 经常有一些朋友向我咨询,如何写出高效的SQL,这不是三言两语能说得清的,索性认真来写一下,增删查改方面的知识我不再赘述,如果有基础薄弱的同学,可以好好的补一补再来看。 以MySQL为基础,MySQL调优篇内容主要包含MySQL逻辑架构、索引知识、表关联算法、explain执行计划解读及SQ
阅读全文
摘要:【前言】 经常有一些朋友向我咨询,如何写出高效的SQL,这不是三言两语能说得清的,索性认真来写一下,增删查改方面的知识我不再赘述,如果有基础薄弱的同学,可以好好的补一补再来看。 以MySQL为基础,MySQL调优篇内容主要包含MySQL逻辑架构、索引知识、表关联算法、explain执行计划解读及SQ
阅读全文
摘要:前言经常有一些朋友向我咨询,如何写出高效的SQL,这不是三言两语能说得清的,索性认真来写一下,增删查改方面的知识我不再赘述,如果有基础薄弱的同学,可以好好的补一补再来看。以MySQL为基础,MySQL调优篇内容主要包含MySQL逻辑架构、索引知识、表关联算法、explain执行计划解读及SQL调优实
阅读全文
摘要:【前言】 经常有一些朋友向我咨询,如何写出高效的SQL,这不是三言两语能说得清的,索性认真来写一下,增删查改方面的知识我不再赘述,如果有基础薄弱的同学,可以好好的补一补再来看。 以MySQL为基础,MySQL调优篇内容主要包含MySQL逻辑架构、索引知识、表关联算法、explain执行计划解读及SQ
阅读全文
摘要:引言问:如何提高一条查询SQL的性能?答:最常用的方式就是加「索引」。问:索引为什么就能提高查询性能?答:索引就像一本书的目录,用目录查当然很快。问:为什么通过目录就能提高查询速度呢。答:…… 都知道通过书目可以快速查询,这只是表象,背后的原因到底是什么呢?下面就来扒一扒。树二叉树由 n( n >
阅读全文
摘要:导读 关系数据模型于 1970 年推出,并已占据主导地位 50 年。它为什么如此成功?这要归功第一性原理和布什内尔定律 1971 年 3 月,英特尔推出世界上第一款通用微处理器——英特尔 4004。它有约 2300 个晶体管,售价 60 美元。 时间快进到 50 年后,最新的 iPhone 有将近
阅读全文
摘要:原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6385312.html 我们在程序中一般在做SQL优化的时候讲究使用EXISTS带替代IN的做法,理由是EXISTS执行效率要比IN高。。 之前我一直挺懵懂的一件事情是如何使用EXISTS来替换
阅读全文
摘要:分享几则MySQL问题处理案例,聊聊我的思路。处理问题的思路和角度各有不同,希望这篇文章可以抛砖引玉 问题一、 问题描述:某功能模块涉及保存和提交类操作慢,反映到数据库环境为DML操作普遍偏慢。 处理过程:排查MySQL数据库发现所有涉及批量插入的功能都有性能问题,数据库选用的是微软云的RDS,对比
阅读全文
摘要:一、SQL注入 1、什么是SQL注入? SQL注入是比较常见的网络攻击方式之一,主要攻击对象是数据库,针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,篡改数据库。。 SQL注入简单来说就是通过在表单中填写包含SQL关键字的数据来使数据库执行非常规代码的过程。 SQL数据库的操作是通过SQL语
阅读全文
摘要:问题原因:未选择OCI执行DLL,和windows 64位的(x86)无关 解决方法:navicat中 工具-》选项-》OCI中的OCI library选择路径(navimat安装路径)C:\Program Files (x86)\PremiumSoft\Navicat for Oracle\ins
阅读全文
摘要:聊聊慢SQL中关于IN语法的优化分析过程。 技术人人都可以磨炼,但处理问题的思路和角度各有不同,希望这篇文章可以抛砖引玉。以一个例子为切入点 一、问题背景 某业务模块反馈SQL慢,优化过程中的一些思考做个记录。基础环境: 主机类型:阿里云 操作系统:CentOS release 7.4 存储:Ali
阅读全文
摘要:windows 操作系统,tomcat报错: java.net.SocketException: No buffer space available (maximum connections reached?): connect 调查发现由于大量的TIME_WAIT连接未被释放,导致占用的端口资源一
阅读全文
摘要:一、数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到 1000W 或 100G 以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。 数据库分布
阅读全文
摘要:聚集索引或聚簇索引(Clustered Index)是一种对磁盘上实际数据重新组织并按指定的一个或多个列的值排序。数据行的物理顺序与列值(一般是主键那列)的逻辑顺序相同,一个表中只能有一个聚集索引(因为只能以一种物理顺序存放)。 InnoDB就是用的聚集索引,它的表中的数据都会有一个主键,即使你不创
阅读全文