![](https://img-blog.csdnimg.cn/20190905105651927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
程铭程铭你快成名
这个作者很懒,什么都没留下…
展开
-
聊聊数据库优化的4大手段
原文链接:https://mp.weixin.qq.com/s/1MBHvtF_XN8g9uaqI-dQ6g转载 2021-12-25 16:02:12 · 897 阅读 · 0 评论 -
基于ShardingSphere的Encrypt-JDBC数据脱敏实战
背景安全控制一直是治理的重要环节,数据脱敏属于安全控制的范畴。对互联网公司、传统行业来说,数据安全一直是极为重视和敏感的话题。数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息按照相关部门规定,都需要进行数据脱敏。在真实业务场景中,相关业务开发团队则往往需要针对公司安全部门需求,自行实行并维护一套加解密系统,而当脱敏场景发生改变时,自行维护的脱敏系统往往又面临着重构或修改风险。此外,对于已经原创 2021-10-19 15:00:47 · 3141 阅读 · 2 评论 -
256变4096:分库分表扩容如何实现平滑数据迁移?
本来转载自微信公众号「阿里技术」,原文地址:https://mp.weixin.qq.com/s/Lg1HF1FmD44roo8_H5aaDQ。转载 2021-03-02 09:37:43 · 3354 阅读 · 0 评论 -
分库分表之 Sharding-JDBC 中间件,看这篇真的够了!
原文地址:https://mp.weixin.qq.com/s/98pAEnP2FsY3WyhhWIPYZg转载 2021-01-11 15:29:20 · 5011 阅读 · 0 评论 -
MVCC和InnoDB行锁
简单介绍下MVCC的原理每个事务开启时,都会被分配到一个全局唯一且递增的事务id,即trx_id,当每次事务对某些数据行进行修改时,都会将事务自身的trx_id记录在数据行的隐藏列上。在事务开启的那一刻,MVCC机制会为事务生成一个当前mysql服务器上所有事务的快照。这个快照是按照如下方式实现的:将当前服务端活跃的全部事务id记录在set中当前活跃的事务最小id记为min_trx_id当前活跃的事务最大id记为max_trx_id当进行一次普通查询的时候,根据数据行上的trx_id进行判断。原创 2020-12-22 17:28:22 · 5490 阅读 · 0 评论 -
互联网中慢SQL优化手段
一个再完美的架构,也会因为一个慢SQL导致系统直接崩溃。最近在做一个比较有意思的工作,优化系统中的慢SQL,整个过程我是很享受的,往往很多慢SQL都是系统中调用非常频繁的接口,这让我对业务更加熟悉,整个优化过程下来对系统和团队的帮助是非常大的,自己针对这次优化历程总结了一些经验和个人心得,希望可以帮到有需要的小伙伴。了解MySQL执行过程图片来源于《高性能MySQL》pdf版。从图片中可以清楚的看到:客户端发送一条查询给服务器;服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果原创 2020-12-10 20:53:58 · 5424 阅读 · 0 评论 -
大厂都在使用的分库分表方案
想必各位小伙伴在面试大厂的时候都遇到过这个面试题,要是提前有准备还好,没准备的话可能就被打了个措手不及,本文将从为什么使用分库分表技术、分库分表的基本概念、分库分表的好处以及分库分表的注意事项来聊一聊这个话题。数据库架构演变刚开始我们只用单机数据库就够了,随后面对越来越多的请求,我们将数据库的写操作和读操作进行分离, 使用主库(Master)负责写,使用多个从库副本(Slaver Replication)负责读,从库从主库同步更新数据,保持数据一致。架构上就是数据库主从同步。从库可以水平扩展,所以更多的原创 2020-11-15 16:37:51 · 5871 阅读 · 0 评论 -
MySQL语句优化利器EXPLAIN
EXPLAIN是什么使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。EXPLAIN可以帮助选择更好的索引和写出更优化的查询语句。在MySQL5.6以及以后的版本中,除过select,其他比如insert,update和delete均可以使用EXPLAIN查看执行计划。通过EXPLAIN,我们可以分析出...原创 2019-08-23 15:19:26 · 4209 阅读 · 0 评论 -
MySQL中一条SQL到底是如何执行的
能够清楚的弄明白SQL的执行过程,知道每一个阶段做了什么事情,对于SQL调优是很有必要和帮助的。MySQL执行一个查询的过程图片来源于《高性能MySQL》pdf版。从图片中可以清楚的看到:客户端发送一条查询给服务器;服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段;服务器段进行SQL解析、预处理,在优化器生成对应的执行计划;mysql根据优化器生...原创 2019-08-10 21:16:34 · 3912 阅读 · 0 评论 -
MySQL中一条SELECT语句是如何执行的
查询操作是关系数据库中使用最为频繁的操作,也是构成其他SQL语句(如DELETE、UPDATE)的基础。SELECT语法如下(5)SELECT DISTINCT <select_list> (1)FROM <left_table> <join_type> JOIN <right_table> ON &l...原创 2019-08-06 09:50:25 · 4063 阅读 · 0 评论 -
MySQL查询优化
为什么查询会慢?查询慢的原因可能很多,比如网络原因、锁争用等等。但最基本的原因可能是访问的数据太多。要么可能访问了太多的行,要么可能访问了太多的列,要么可能MySQL在查询的时候需要分析大量超过需要的行。查询优化一个查询根据不同的场景,一般可以通过下面的方式来进行优化:使用COUNT *在使用COUNT统计行数时,COUNT(*)是性能最高的。使用LIMIT有时候查询并不需要...原创 2019-08-04 17:28:02 · 3722 阅读 · 0 评论 -
MySQL索引使用策略和优化
在前面的文章里,我们介绍了MySQL索引的原理。那么在实际开发中,应该如何去使用索引以及如何去优化呢?什么时候不应该使用索引?索引并不都是有效的。有些场合,可能我们并不需要使用索引,甚至使用了索引反而会影响性能。查询很少用到的列如果某些列在查询时很少用到,那加不加索引的速度其实是差不多的。而增加索引会增加系统维护索引的开销,所以不值得创建索引。表的数据量很少如果在测试数据库里只...原创 2019-08-04 17:02:27 · 3800 阅读 · 0 评论 -
MySQL索引原理
什么是索引?“索引”是为了能够更快地查询数据。比如一本书的目录,就是这本书的内容的索引,读者可以通过在目录中快速查找自己想要的内容,然后根据页码去找到具体的章节。数据库也是一样,如果查询语句使用到了索引,会先去索引里面查询,取得数据所在行的物理地址,进而访问数据。索引的优缺点优势:以快速检索,减少I/O次数,加快检索速度;根据索引分组和排序,可以加快分组和排序。劣势:索引本身也是表,因...原创 2019-08-04 16:39:16 · 4783 阅读 · 0 评论 -
Mysql的并发控制
Mysql是主流的开源关系型数据库,提供高性能的数据存储服务。我们在做后端开发时,性能瓶颈往往不是应用本身,而是数据库层面。所以掌握Mysql的一些底层原理有助于我们更好地理解Mysql,对Mysql进行性能调优,从而开发高性能的后端服务。Mysql的逻辑架构Mysql的逻辑架构如下图:最上层是处理客户端过来的连接的。主要做连接处理、授权认证、安全等。Mysql在这一层维护了一个线程池,用...原创 2020-03-16 14:48:49 · 1366 阅读 · 0 评论 -
MySQL中常用的存储引擎
什么是存储引擎关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,也就是需要不同存储引擎。MySQL都有哪些存储引擎可以看到,MySQL中一共有...原创 2019-08-03 21:46:59 · 2450 阅读 · 0 评论 -
当执行一条 select 语句时,MySQL 到底做了啥?
原文链接:https://blog.csdn.net/bruce_6/article/details/84383878#commentBox也许,你也跟我一样,在遇到数据库问题时,总时茫然失措,想重启解决问题,又怕导致数据丢失,更怕重启失败,影响业务。就算重启成功了,对于问题的原因仍不知所以。本文开始,记录学习《MySQL实战45讲》专栏的过程。也许有人会问,你记录有什么意义?直接看专栏不...转载 2019-03-21 15:59:07 · 1659 阅读 · 0 评论 -
10条SQL技巧
一、一些常见的SQL实践(1)负向条件查询不能使用索引select * from order where status!=0 and stauts!=1not in/not exists都不是好习惯可以优化为in查询:select * from order where status&nbsp;in(2,3)&nbsp;(2)前导模糊查询不能使用索引...转载 2018-08-08 14:27:15 · 1147 阅读 · 0 评论 -
ORACLE12cR2 ORA-28040: No matching authentication protocol
今天在链接数据库的时候,出现了这样的一个问题。 ORA-28040: No matching authentication protocol然后直接查看原因是什么给的提示描述是‘没有匹配的认证协议’。 仔细的读他给的提示,应该是没有在sqlnet.ora里添加下面这两行代码:SQLNET.ALLOWED_LOGON_VERSION_SERVER=8SQLNET.AL原创 2018-01-10 13:27:26 · 1513 阅读 · 0 评论