
数据库
冷锋-
只要现在努力一切都来得及,最近暂停更
展开
-
52条SQL语句性能优化策略
本文会提到 52 条 SQL 语句性能优化策略。1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。2、应尽量避免在WHERE子句中对字段进行NULL值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。3、应尽量避免在WHERE子句中使用 != 或 <> 操作符。MySQL 只有对以下操作符才使用索引:<,<=,=...转载 2020-12-29 09:00:05 · 144 阅读 · 0 评论 -
MySQL主从同步,及Canal实时数据库同步
1.简介 Linux下MySQL数据库的主从同步用来实现读写分离。主数据库进行数据的插入,删除与更新;从数据库专门用来查询操作,缓解数据库的压力。让运行海量数据的时候无论是从速度还是效率上都大大提高,Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。2.主从同步原理 Mysql服务器之间的主从同步是基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来...原创 2020-10-19 22:33:11 · 2536 阅读 · 2 评论 -
深入理解数据库事务隔离级别--Mysql默认选择可重复读
为什么Mysql默认选择可重复读?Mysql主从复制,是基于binlog复制的;而binlog是一个记录数据库更改日志文件.binlog有三种格式,分别是statement:记录的是修改SQL语句 row:记录的是每行实际数据的变更 mixed:statement和row模式的混合Mysql5.0版本以前,binlog只支持STATEMENT这种格式!而这种格式在读已提交(Read Commited)隔离级别下,主从复制是有bug的,因此Mysql将可重复读作为默认的隔离级别。当binlog原创 2020-08-01 00:34:45 · 357 阅读 · 0 评论 -
深入理解数据库事务--脏读、不可重复读,幻读
一.数据库的ACID原子性:一个事务执行过程中,所有步骤要么全部成功,或者全部回滚失败,不能执行其中一部分。一致性:从一种状态,执行该事务后,转变为另外一种正确状态 。隔离性:为了有效保证并发读取数据的正确性,提出的事务隔离级别。包括:读未提交,读已提交,可重复度,串行化。持久性:事务执行成功之后,数据不能更改。二. 1、脏读 脏读即为事务1第二次读取时,读到了事务2未提交的数据。若事务2回滚,则事务1第二次读取时,读到了脏数据。 2、不可重复读 不可重复...原创 2020-07-31 23:56:20 · 731 阅读 · 1 评论 -
MyCat分库分表策略详解
前言:MyCat不仅提供了丰富的分库分表策略,也提供了非常灵活的读写分离策略,并且其对客户端的侵入性是非常小的。本文主要讲解MyCat主要提供的分库分表策略,并且还会讲解MyCat如果自定义分库分表策略。1. 配置格式介绍在讲解MyCat分库分表策略之前,我们首先介绍一下其配置文件的格式。在MyCat中,配置文件主要有两个:schema.xml和rule.xml。顾名思...转载 2019-12-10 11:08:19 · 461 阅读 · 0 评论 -
MyCat分库分表入门
1、分区 对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm。根据一定的规则把数据文件(MYD)和索引文件(MYI)进行了分割,分区后的表呢,还是一张表。分区可以把表分到不同的硬盘上,但不能分配到不同服务器上。优点:数据不存在多个副本,不必进行数据复制,性能更高。 缺点:分区策略必须经过充分考虑,避免多个分区之间的数据...转载 2019-12-10 11:04:42 · 266 阅读 · 0 评论 -
Mysql海量数据存储和解决方案之一—分布式DB方案
Mysql海量数据存储和解决方案之一—分布式DB方案1)分布式DB水平切分中用到的主要关键技术:分库,分表,M-S,集群,负载均衡2)需求分析:一个大型互联网应用每天几十亿的PV对DB造成了相当高的负载,对系统的稳定性的扩展性带来极大挑战。3)现有解决方式:通过数据切分提高网站性能,横向扩展数据层水平切分DB,有效降低了单台机器的负载,也减小了宕机的可能性。...转载 2019-04-03 00:06:13 · 211 阅读 · 0 评论 -
RBAC用户角色权限设计方案
转自http://www.cnblogs.com/zwq194/archive/2011/03/07/1974821.htmlRBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者...转载 2019-04-10 17:35:51 · 244 阅读 · 0 评论 -
MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解
转载 2017-08-15 15:47:32 · 251 阅读 · 0 评论 -
Telnet 1521端口连接失败问题,经过四天的努力终于解决!
1 由于安装oracle之后,安装plsql都是自动检测orcl实例的ip及其端口,最近突然发现plsql连不上,于是尝试telnet 1521端口,于是发现端口连接失败的问题。经过几经摸索,解决了该问题。2 注意:安装的oracle11g,12c版本时,listener.ora 监听文件,没有自动添加红色圈里面的sid_name的设置,这点需要注意检查配置。 3 环境变量配置,也很重要,这是...原创 2018-01-31 16:09:27 · 32440 阅读 · 3 评论 -
oracle数据库中查询一张表中的所有列及其列的数据类型
SELECT table_name, column_name, data_type FROM all_tab_cols WHERE table_name = '表名 ;注意:表名一定要大写。转载 2017-07-19 10:50:25 · 1152 阅读 · 0 评论 -
DDL,DML,DCL区别及其作用范围详解
区别1.DML(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language): 2.DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表...原创 2017-08-10 17:30:24 · 6154 阅读 · 0 评论