数据库
文章平均质量分 81
买糖买板栗
java
展开
-
分布式系统设计
高可用分布式系统应该要考虑以下几个大点和一些小点,大点与小点之间其实有包含、有交集,只是为了方便分点论述才分类。四个大点:容错能力(服务隔离、异步调用、请求幂等性、分布式锁) 可伸缩性(有 / 无状态的服务) 一致性(补偿事务、重试) 应对大流量的能力(熔断、降级)两个小点:解耦(MQ) 线程池四个大点论述:1、容错能力(服务隔离、异步调用、请求幂等性、分布式锁)......原创 2018-07-16 22:32:55 · 9266 阅读 · 1 评论 -
基于 Redis 的分布式锁到底安全吗(上)?
原文:微信号: DBDevs 中的文章本系列基于 Redis 3.2 分支网上有关Redis分布式锁的文章可谓多如牛毛了,不信的话你可以拿关键词“Redis 分布式锁”随便到哪个搜索引擎上去搜索一下就知道了。这些文章的思路大体相近,给出的实现算法也看似合乎逻辑,但当我们着手去实现它们的时候,却发现如果你越是仔细推敲,疑虑也就越来越多。实际上,大概在一年以前,转载 2017-05-16 22:20:14 · 647 阅读 · 0 评论 -
SQL注入实例
一、SQL注入的步骤 a) 寻找注入点(如:登录界面、留言板等) b) 用户自己构造SQL语句(如:' or 1=1#,后面会讲解) c) 将sql语句发送给数据库管理系统(DBMS) d) DBMS接收请求,并将该请求解释成机器代码指令,执行必要的存取操作 e) DBMS接受返回的结果,并处理,返回给用户 因为用户构造了特殊的SQL语句,必定返回特殊的结果(只要你的SQL转载 2016-09-23 14:07:57 · 1698 阅读 · 0 评论 -
Mysql Join语法解析与性能分析
一.Join语法概述join 用于多表中字段之间的联系,语法如下:... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionatable1:左表;table2:右表。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。LEFT JOIN(左连接):取得左表原创 2016-08-03 12:04:46 · 1237 阅读 · 0 评论 -
运维角度浅谈MySQL数据库优化
一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分为以下五个阶段: 1、数据库表设计项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分就是对表结构设计。对于数据库来说,这点很重要,如果设计不当,会直接影响访问速转载 2016-10-20 12:47:34 · 1260 阅读 · 0 评论 -
MySQL优化
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段转载 2016-12-26 11:31:57 · 390 阅读 · 0 评论 -
MySQL SQL语句优化技巧
1、应尽量避免在 where 子句中使用!=或2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表原创 2016-10-20 14:46:25 · 389 阅读 · 0 评论 -
Mysql主从复制
Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连转载 2016-10-20 13:47:54 · 446 阅读 · 0 评论 -
mysql的in和not in等的用法(特别注意not in结果集中不能有null)、表分区
mysql的not in的用法(特别注意not in结果集中不能有null,如果not in结果集中有Null,则查询结果直接为Null) select * from user where name not in ('科比', '乔丹');假如DB有100条数据(包含'科比', '乔丹'),则这条sql返回剩余98条记录select * from user where name not ...原创 2019-09-02 18:51:03 · 10691 阅读 · 2 评论