- 博客(54)
- 资源 (51)
- 收藏
- 关注
原创 Oracle 基础知识 详解
DDL : 数据库模式定义语言,关键字:createDML : 数据操纵语言,关键字:Insert、delete、updateDCL : 数据库控制语言 ,关键字:grant、removeDQL : 数据库查询语言,关键字:select结构化查询语言 (Structured Query Language, SQL),Oracle 中的 SQL 不区分大小写只有在文本数字值得时候才会检查注 : 当创...
2018-03-27 11:07:06 13819
原创 Java 创建对象以及类加载 详解
java 创建对象有多种方式 :方式1> new方式2> 使用 Object 的 clone 方法 <1> 实现 clone类 首先实现 Cloneble接口,Cloneable接口 实质上是一个标识接口 类似于 Serializable 接口,没有任何方法 <2> 重写 Object 中的 clone方法 <3> 在 clone方...
2018-03-26 08:31:00 669
原创 JavaScript 闭包 详解
闭包 : 闭包就是一个函数引用另外一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量当内部函数在定义它的作用域的数据外部被引用时,就创建了该内部函数的闭包,如果内部函数引用了位于外部函数的变量,当外部函数调用完毕后,这些变量在内存不会被释放,因为闭包需要它们变量的作用域 : 作用域就两种,全局作用域和局部作用域var n=999;function f1(){ aler...
2018-03-26 08:30:55 315
原创 MySQL 循环方法 while loop repeat 详解
存储过程中使用到的循环while 循环 :# 语法while 条件 do 循环体;end while;# 创建自定函数使用 while 循环mysql> DELIMITER ;; -> CREATE PROCEDURE sum1(a INT) -> BEGIN -> DECLARE sum INT DEFAULT 0; -- default 是指定该变...
2018-03-25 13:44:34 7088
原创 MyCat 注解 详解
MyCat 对自身不支持的 SQL 语句提供一种解决方案——在要执行的 SQL 语句前添加额外的一段由注解。SQL 组织的代码,这样 SQL 就能正确执行,这段代码称之为“注解”。注解的使用相当于对 MyCat 不支持的 SQL 语句做一层透明代理转发,直接交给目标的数据节点进行 SQL 语句执行,其中注解 SQL 用于确定最终执行 SQL 的数据节点。 注解的形式是 :/*!mycat: sql...
2018-03-25 12:26:33 2158
原创 Mycat-Web 使用 详解
1> Mycat eye 需要 Zookeeper 作为配置中心,因此搭建一个 Zookeeper2> Mycat eye 环境部署下载 Mycat-Web : GitHub https://github.com/MyCATApache/Mycat-download/tree/master/mycat-web-1.0 镜像下载地...
2018-03-25 12:12:31 4133
原创 MySQL IS NOT NULL、!=NULL、ISNULL() 详解
NULL 表示什么也不是,不能 =、>、< … 所有的判断,结果都是false,所有只能用 IS NULL 进行判断默认情况下,推荐使用 IS NOT NULL去判断,因为 SQL 默认情况下对 !=NULL 的判断会永远返回 0 行,但没有语法错误如果一定想要使用 !=NULL 来判断,需要加上这个语句 :SET ANSI_NULLS OFF这时会发现 IS NOT NULL 和 !...
2018-03-25 11:20:53 29224
原创 MySQL 创建定时任务 详解
自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由操作系统的计划任务来执行的工作。事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里在使用这个功能之前必须...
2018-03-25 11:20:46 16587
原创 MySQL show 详解
1> show tables 或 show tables from database_name : 显示当前数据库中所有表的名称mysql> show tables;+----------------+| Tables_in_test |+----------------+| article || article2 || t_base || t...
2018-03-25 11:20:36 1122
原创 MySQL 查看语句运行时间 详解
方法1> 使用 show profiles 进行查看# 查看 profile 是不是打开的,默认是不打开mysql> show variables like "%pro%";+------------------------------------------+-------+| Variable_name | Value |+--...
2018-03-25 11:20:25 1905
原创 MySQL CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 详解
1> CURRENT_TIMESTAMP : 当要向数据库执行 insert操作时,如果有个 timestamp字段属性设为 CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间2> ON UPDATE CURRENT_TIMESTAMP : 使用 ON UPDATE CURRENT_TIMESTAMP 放在 TIMESTAMP 类型的字段后面,在数据发生...
2018-03-25 11:20:18 12900
原创 Linux 下安装 MyCat 详解
官方网站 : http://www.mycat.io/注 : 在 Mycat 文件的目录中,bin目录 存放在 Mycat 的执行文件;conf目录 存放 Mycat 的配置文件;lib目录存放 Mycat所依赖的 jar包;logs目录存放 Mycat运行时所产生的日志文件;version.txt 记录当前的 Mycat信息1> 去官方网站下载最新发布版 Mycat,Mycat的运行需要 ...
2018-03-25 11:20:11 435
原创 MySQL 分支版本对比 详解
产品价格目标主要功能是否可投入生产Percona Server免费提供 XtraDB 存储引擎的包装器和其他分析工具XtraDB是MariaDB免费扩展 MySQL 以包含 XtraDB 和其他性能改进XtraDB是Drizzle免费提供比 MySQL 更强大的可扩展性和性能改进高可用是Percona Server (包括 XtraDB引擎)XtraDBXtraDB 是一款独立的产品,但它仍被认为...
2018-03-25 11:19:59 1956
原创 MySQL 架构及优化原理 详解
MySQL逻辑架构MySQL逻辑架构整体分为三层 :1> 客户端 : 并非MySQL所独有,诸如 : 连接处理、授权认证、安全等功能均在这一层处理2> 核心服务 : 包括查询解析、分析、优化、缓存、内置函数(比如 : 时间、数学、加密等函数),所有的跨存储引擎的功能也在这一层实现 : 存储过程、触发器、视图等3> 存储引擎 : 负责 MySQL 中的数据存储和提取,和 Linux...
2018-03-24 13:17:27 11712 3
原创 MySQL 执行计划 详解
开启 profile 工具mysql> SHOW VARIABLES LIKE '%profil%';+------------------------+-------+| Variable_name | Value |+------------------------+-------+| have_profiling | YES || profilin...
2018-03-24 13:12:40 262
原创 MySQL insert ignore into、replace into、insert into、on duplicate key update 详解
创建测试表mysql> CREATE TABLE books(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) UNIQUE,remark VARCHAR(100));mysql> INSERT INTO books(name,remark) VALUES('MySQL of actual combat','MySQL of actu...
2018-03-24 13:11:16 1025
原创 MySQL 索引 详解
用于快速查询数据库表中的数据优点 : 提高检索数据的速度缺点 : 索引需要占用物理空间,因此在增加、删除、修改数据时会造成维护速度降低MySQL 种索引类型1> 普通索引 : CREATE INDEX index_name ON table(column(length))2> 唯一索引 : CREATE UNIQUE INDEX indexName ON table(column(le...
2018-03-24 13:08:45 508
原创 Docker 搭建 MySQL 详解
1> 获取镜像 : 直接从 Docker Hub 上拉取 MySQL在 Docker Hub 或者 Docker Store 上搜索 MySQL 官方版使用相应的 pull 指令拉取 MySQL 镜像$ docker pull mysql2> 创建数据和日志目录,以及 mysql 配置文件# 创建存储目录$ cd /opt/datas/docker$ mkdir mysql mysql...
2018-03-24 12:45:28 1549
原创 MySQL count(1) count(*) 比较 详解
count(*) 将返回表格中所有存在的行的总数包括值为 null 的行,然而 count(列名) 将返回表格中除去 null 以外的所有行的总数 (有默认值的列也会被计入),这点对于所有数据的 COUNT 计算都是一样的count(1) 与 count(*) 比较 :1> 如果数据表没有主键,那么 count(1) 比 count(*) 快2> 如果有主键的话,那主键 (联合主键) ...
2018-03-24 12:44:31 25933 3
原创 MySQL 数据库设计规范 详解
1> 数据库涉及字符规范采用 26 个英文字母(区分大小写) 和 0-9 这十个自然数,加上下划线'_'组成,共 63 个字符,不能出现其他字符(注释除外)注 : 1> 以上命名都不得超过 30 个字符的系统限制,变量名的长度限制为 29(不包括标识字符@) 2> 数据对象、变量的命名都采用英文字符,禁止使用中文命名。绝对不要在对象名的字符之间留空格 3&...
2018-03-24 12:33:10 1003
原创 MySQL 5.7 时间不兼容问题 详解
MySQL 中 datetime, timestamp, date 的区别日期类型存储空间日志格式日期范围datetime8 bytesYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:59timestamp4 bytesYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 ~ 2037-12-31 23:5...
2018-03-24 12:11:00 8061
原创 MySQL 清空表(truncate)与删除表中数据(delete) 详解
删除表信息的方式有两种 :truncate table table_name;delete * from table_name;注 : truncate操作中的table可以省略,delete操作中的*可以省略truncate、delete 清空表数据的区别 :1> truncate 是整体删除 (速度较快),delete是逐条删除 (速度较慢)2> truncate 不写服务器 lo...
2018-03-24 11:54:24 119951 2
原创 MySQL 压缩 详解
MySQL 压缩协议适合的场景是 MySQL 的服务器端和客户端之间传输的数据量很大,或者可用带宽不高的情况,典型的场景有如下两个 :1> 查询大量的数据,带宽不够(比如导出数据的时候)2> 复制的时候 binlog 量太大,启用 slave_compressed_protocol 参数进行日志压缩复制压缩协议是 MySQL 通信协议的一部分,要启用压缩协议进行数据传输,需要 MySQ...
2018-03-24 10:03:53 5956
原创 MySQL 数据备份和还原 详解
1> 数据库备份,在 MySQL 的 bin目录下,有一个名为 mysqldump 的可执行文件,将该 bin 目录添加到环境变量中,可以利用它在 "命令提示符" 环境下来备份数据库,mysqldump命令的工作原理是先查出需要备份的表的结构,再在文本中生成一个 CREATE语句,然后将表中的所有记录转换成一条 INSERT语句<1> 备份一个数据库$ mysqldump -h ...
2018-03-23 22:56:12 255
原创 Zsh 详解
Zsh 官网 : https://www.zsh.org/oh-my-Zsh 官网 : http://ohmyz.sh/Zsh 和 oh-my-Zsh 的关系Zsh 是 Shell 中的一种,什么 Shell 你可以再搜索下,简单粗暴讲就是一个:命令解释器,你输入什么命令,它就执行什么,这个东西再 Unix 世界还有其他几个。由于 Zsh 配置门槛有点高,或者说需要专门花时间去了解 Zsh 才能配...
2018-03-23 22:14:26 3188
原创 MyCat SQL拦截机制 详解
SQL 拦截是一个比较有用的高级技巧,用户可以写一个 java 类,将传入 MyCat 的 SQL 进行改写然后交给 MyCat 去执行,此技巧可以完成如下一些特殊功能 :1> 捕获和记录某些特殊的 SQL2> 记录 SQL 查找异常3> 出于性能优化的考虑,改写 SQL,比如改变查询条件的顺序或增加分页限制4> 将某些 Select SQL 强制设置为 Read 模式,走...
2018-03-23 22:02:26 1961 1
原创 MyCat 对存储过程
从 MyCat1.6 版本开始完整支持 MySQL 和 Oracle 的存储过程,调用原理需要使用注解,把存储过程的调用当做普通 SQL 来调用注 : 在程序中别用以前存储过程的调用方式,要按照普通查询 sql 的调用方式,返回结果从 resultset 里取完美支持以下三种情况 :1> 无返回值/*#mycat: sql=SELECT * FROM test */ call p_test(...
2018-03-23 10:05:16 5372
原创 MyCat 压缩 详解
MyCat 从 1.4 开始支持 MySQL 的压缩协议,在查询返回大的结果集和 load data 大量数据的性能提升比较明显。可以大大节省网络流量,但会消耗少量 CPU 资源。如果要启用压缩协议,则客户端、MyCat、MySQL 三者都启用才行MyCat 可以在 server.xml 中配置 1 启用。客户端如果是 MySQL 命令行,则加参数 -C 启用压缩协议。客户端如果是 JDBC 则在...
2018-03-22 23:33:50 537
原创 MyCat 管理命令与监控 详解
MyCat 自身有类似其他数据库的管理监控方式,可以通过 MySQL 命令行,登录管理端口(9066) 执行相应的 SQL 进行管理,也可以通过 jdbc 的方式进行远程连接管理。MyCat1.6 有两个端口,8066 数据端口,9066 管理端口,命令行的登陆是通过 9066 管理端口来操作,登录方式类似于 MySQL 的服务端登陆# mysql -uroot -p123456 -h192.16...
2018-03-22 23:15:44 5229
原创 MyCat Catlet实现 详解
通过 catlet 支持跨分片复杂 SQL 实现以及存储过程支持等。使用方式主要通过 mycat 注释的方式来执行,如下 :1> 跨分片联合查询注解支持/*!mycat: catlet=demo.catlets.ShareJoin */ select bu.,sg.* from base_user bu,sam_glucose sg where bu.id_=sg.user_id;注 : s...
2018-03-22 17:36:58 1616
原创 Mycat 分片 详解
在数据切分处理中,特别是水平切分中,中间件最终要的两个处理过程就是数据的切分、数据的聚合。选择合适的切分规则,至关重要,因为它决定了后续数据聚合的难易程度,甚至可以避免跨库的数据聚合处理数据切分 : 通过特定手段,将放到同一数据库中的数据发散到多个数据库中,或者分散到多个节点中优点 : 1> 分散单台设备的负载 2> 提高数据安全性缺点 : 1> 增加系统复杂度...
2018-03-22 14:27:06 964
原创 MySQL 分表、分区 详解
分表和分区的目的大表是指存储百万级乃至千万级条记录的表,这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率分表和分区不矛盾,可以相互配合的,对于那些大访问量,并且表数据比较多的表,可以采取分表和分区结合的方式 (如果 merge 这种分表方式,不能和分...
2018-03-19 11:32:21 576
原创 MySQL 数据库文件 详解
MySQL 的每个数据库都对应存放在一个与数据库同名的文件夹中,该文件夹由 MySQL 配置文件 /etc/my.cnf 定义,其中 datadir=/var/lib/mysql 就指定存放位置,MySQL 数据库文件包括 MySQL 所建数据库文件和 MySQL 所用存储引擎创建的数据库文件$ cd /var/lib/mysql$ ls # MySQL 数据存放位置,其中 mytest t...
2018-03-19 09:47:09 17770 1
原创 分布式事务 详解
柔性事务 和 刚性事务柔性事务满足 BASE理论 (基本可用,最终一致),刚性事务满足ACID理论柔性事务分为1> 两阶段型2> 补偿型3> 异步确保型4> 最大努力通知型几种,由于支付宝整个架构是 SOA架构,因此传统单机环境下数据库的 ACID事务 满足分布式环境下的业务需要,以上几种事务类似就是针对分布式环境下业务需要设定的两阶段提交 (2PC) 型两阶段型 就是分布...
2018-03-16 23:35:30 318
原创 分布式数据库主键方案 详解
采用 MySQL 实现方式在只使用单数据库时,使用自增主键ID无疑是最适合的。但在集群、主从架构上时就会有一些问题,比如 : 主键的全局唯一在集群环境下除自增ID 外的其它创建主键的方案1> 通过应用程序生成一个 GUID,然后和数据一起插入切分后的集群优点 : 维护简单,实现也容易缺点 : 应用的计算成本较大,且 GUID 的长度比较长,占用数据库存储空间较大,涉及到应用的开发2> ...
2018-03-16 23:34:51 5669
原创 分布式锁 详解
单纯的 Java API 并不能提供分布式锁的能力,目前比较常见的分布式锁有如下几种方案 :1> 基于数据库实现分布式锁2> 基于缓存 (redis,memcached,tair) 实现分布式锁3> 基于 Zookeeper 实现分布式锁分布式锁的要求 :1> 可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行2> 锁要是一把可重入锁...
2018-03-16 23:33:25 557
原创 三大主流负载均衡器 Nginx LVS HaProxy 详解
LVS :1> 抗负载能力强 : 抗负载能力强、性能高,能达到 F5 硬件的60%;对内存和cpu资源消耗比较低2> 工作在网络4层,通过 vrrp协议转发 (仅作分发之用),具体的流量由 linux内核处理,因此没有流量的产生3> 稳定性、可靠性好,自身有完美的热备方案 (如 : LVS + Keepalived)4> 应用范围比较广,可以对所有应用做负载均衡5> ...
2018-03-16 23:32:00 555
原创 JAVA String.format详解
1> 常规类型的格式化String类的 format()方法用于创建格式化的字符串以及连接多个字符串对象,format()方法有两种重载形式:format(String format, Object... args):新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串format(Locale locale, String format, Object... args):使用...
2018-03-16 23:30:14 2559 2
原创 Java 并发集合 详解
Java 提供两类适用于并发应用的集合 :1> 阻塞式集合 : 当集合已满或为空时,被调用的添加或移除方法不能立即执行,此时这个线程阻塞,一直到该方法可以被成功执行2> 非阻塞式集合 : 如果方法不能被立即执行,则返回 null 或抛出异常,但是调用这个方法的线程不会被阻塞ConcurrentLinkedDeque 类非阻塞式线程安全列表,线程安全的双向链表public int siz...
2018-03-16 23:29:56 619
原创 MySQL 日志 详解
日志配置官方文档 : https://dev.mysql.com/doc/refman/5.7+/en/server-logs.html启动日志功能会降低MySQL数据库的执行速度,且会占用大量磁盘空间和使用很多内存,一般不开启MySQL数据库的日志功能MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助定位 mysqld 内部发生的事件,...
2018-03-16 23:25:08 753 1
jr-android-ide-studio_crack.zip
2017-03-14
Coolorus v2.5.15 WinMac.zip
2024-01-17
mybatis plugin 3.21 插件以及破解补丁
2017-11-15
dubbo-admin-book
2017-09-15
dubbo-user-book
2017-09-15
Dubbo用户指南
2017-09-15
Docker技术入门与实战
2017-09-15
MongoDB应用设计模式
2017-09-15
INSPINIA - Responsive Admin Theme
2017-06-28
超越 JAVA.pdf
2017-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人