- 博客(19)
- 收藏
- 关注
原创 MySql 事务介绍
事务是由一组SQL 语句组成的逻辑处理单元。事务的四个属性: 原子性(Atomicity):是指事务是一个不可再分割的工作单位,对事务中的数据的操作要么都完成要么都不完成。 一致性(Consistent):在事务开始和完成时,数据都必须保持一致性。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性:在事务结束时,所有的内部的数据结构也都必须是正确的。
2017-11-25 14:54:16
351
原创 MySql 锁机制
根据对数据的操作类型可以将锁划分为读锁和写锁。 读锁(共享锁):针对一份数据,多个读操作可以同时进行而不互相影响。 写锁(排他锁):当前写操作没有完成前,会阻断其他写锁和读锁。根据对数据操作的粒度划分可以划分为表锁和行锁。 表锁(偏读):偏向于MyISAM 存储引擎,开销小,加锁快,无死锁,锁颗粒度大,发生所冲突的概率很高,并发度很低。MyISAM 的读写调度是写优先,
2017-11-25 11:19:37
305
原创 MySql ORDER BY 索引优化
上一篇:MySql 索引优化 MySql 支持两种方式的排序,FileSort 和 Index ,Index 效率高,它指的是MySql 扫描索引本身完成排序。FileSort 会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。因此效率很低。在我们使用ORDER BY 子句进行排序查找时,要使用Index 的方式排序,避免FileSort 方式排序。 我在t_emp 表上
2017-11-25 10:02:04
477
原创 MySql 使用SHOW PROFILE 进行SQL 分析
什么是SHOW PROFILE: SHOW PROFILE 是MySql 提供可以用来分析当前会话语句执行的资源消耗情况,可以用于SQL 的调优测评依据。在默认的情况下,参数处于关闭状态,并保存着最近15 次的运行结果。我们可以通过 SHOW VARIABLES LIKE ‘PROFILING’; 命令查看参数的开关情况;通过 SET PROFILING = ON; 命令设置开启状态。
2017-11-24 22:02:04
930
转载 MySQL慢查询日志
慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一
2017-11-24 20:28:44
319
原创 MySql 小表驱动大表
有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多。优化原则: 小表驱动大表,即小的数据集驱动大得数据集。在知道什么是小表驱动达大表之前,我们先来了解两个查询关键字,IN 与 EXISTS。我们通过两段查询语句先来了解一下它们的作用。我建立了两张表,一张员工表,一张部门表,员工表中有部门id
2017-11-24 16:34:35
1048
原创 Java 堆内存优化
Java堆的唯一目的就是创建实例对象,几乎所有的对象都在堆上分配内存,如果堆空间分配内存出现问题可见是非常严重的。当Java 堆内存出现问题时,我们应该怎么去优化呢?在学习堆内存优化之前,我们要先了解一下有关堆内存优化的参数。堆在实现时,既可以实现成固定大小的,也可以是可扩展的,当前主流的虚拟机都是按照可扩展来实现的(通过-Xmx和-Xms控制)。 在这里通过程序测试一下:public c
2017-11-23 09:40:31
281
原创 MySql 索引优化
上一篇:MySql 之EXPLAIN 关键字 在了解EXPLAIN 关键字之后呢,我们就可以根据一些属性查看我们的SQL 语句是否是高效的,从而使我们编写出高效的SQL 语句,接下来就是一些实际应用啦。我在这里建立了一张表并存放了一些数据(建立了一个复合索引)。执行查询SQL 语句,共有三条记录: 查看建立的索引: 最佳左前缀原则: 下面我们使用执行查询语句,这里我们
2017-11-22 11:44:16
307
原创 MySql 数据库“索引”初体验
作为程序猿我们不仅要能编写正确的SQL 语句,也要编写高性能的SQL 语句,下面我们就来共同了解一下MySql 数据库的索引,它可以帮助MySql 高效获取我们想要读取的数据。索引是什么: MySql 官方对索引的定义为:索引(index) 是帮助MySql 高效获取数据的数据结构。因此我们可以知道索引的本质是一种数据结构。我们也可以理解为“排好序的快速查找的数据结构”。除了数据本身之外,数据
2017-11-20 20:05:50
346
原创 MySql 数据库逻辑架构
与其他数据库相比,MySql 数据库有自己独特的地方,它的架构可以在不同的场景中应用并发挥良好的作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离。这种架构的最大优点是可以根据业务和实际需求选择适当的存储引擎。下面是MySql 的逻辑架构图: 一:连接层: 最上层是客户端和连接服务,包括本地sock 通信和大多数基于客户端/服务端
2017-11-19 11:37:51
774
原创 Java 多态之“绑定”
写在前面: 在刚开始学习JavaSE 时,在学习多态这个章节时对下面的问题两个程序输出的结果感觉到很奇怪:public class Sub extends Super{ public int num = 1; public int getNum(){ return num; } public static void main(String[]
2017-11-17 15:57:40
304
原创 PREV-5 错误票据
题目:import java.util.*;public class Main{ public static void main(String[] args) { Scanner read = new Scanner(System.in); String n = read.nextLine(); List<Integer> list = new
2017-11-15 11:55:27
246
原创 PREV-6 翻硬币
题目import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner read = new Scanner(System.in); String str1 = read.nextLine(); String str2 = rea
2017-11-15 11:51:14
283
转载 PREV-3 带分数
时间限制:1.0s 内存限制:256.0MB问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。输入格式从标准输入读入一个正整数N (N<1000*1000)输出格式程序输出该数字用数码1~9不重
2017-11-14 21:16:43
255
原创 递归全排列
题记: 熟悉递归的使用,利用递归输出1-n 所有全排列可能性:import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner read = new Scanner(System.in); int n = read.nextInt();
2017-11-14 14:35:30
221
原创 Java对象的访问定位
这篇博文主要介绍Java 对象的引用方式,以及对于Java 程序设计语言中关于”引用传递”与”值传递”问题谈一谈看法。Java对象的访问定位 我们知道Java 程序需要通过栈上的引用(reference) 数据来操作堆上的具体对象。由于reference 类型在Java 虚拟机规范中只规定了一个指向对象的引用,并没有定义这个引用通过何种方式去定位、访问堆中对象的具体位置,所以对象的访问方式也是
2017-11-13 17:08:38
634
原创 Java对象的创建过程
在Java程序运行的过程中无时无刻都有对象被创建。在程序中创建对象(克隆,反序列化)通常是一个new 关键字而已,下面将在虚拟机的角度看待对象是如何被创建出来的。Java对象创建的过程 1. 虚拟机遇到一条new 指令时,首先将会检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载,解析和初始化过。如果没有那就先执行相应的类加载过程。 2. 在类
2017-11-13 09:15:55
279
转载 Java运行时数据区域
参考资料:《深入理解Java虚拟机》运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁时间。以下是Java虚拟机所管理的内存区域: 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作时当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,
2017-11-11 15:41:23
301
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人