数据库相关
Alone枫叶
世界上有10种人,一种懂二进制,一种不懂二进制。
展开
-
SQL优化
一、优化 SQL 语句的一般步骤1、通过 show status 命令了解各种 SQL 的执行频率show status like 'Com%';例如:Com_xxx 表示每个 xxx 语句执行的次数,我们通常比较关心的是以下几个统计参数。 Com_select:执行 select 操作的次数,一次查询只累加 1。 Com_insert:执行 INSERT 操作的次数...原创 2019-05-23 21:32:34 · 189 阅读 · 0 评论 -
数据库索引
索引概述所有 MySQL 列类型都可以被索引,对相关列使用索引是提高 SELECT 操作性能的最佳途径。MySQL 中索引的存储类型目前只有两种(BTREE 和 HASH),具体和表的存储引擎相关:MyISAM 和 InnoDB 存储引擎都只支持 BTREE 索引;MEMORY/HEAP 存储引擎可以支持 HASH和 BTREE 索引。MyISAM 和 InnoDB 存储引擎的表默认创...原创 2019-05-22 20:57:41 · 193 阅读 · 0 评论 -
MySQL锁问题
MySQL锁概述相对于其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎使用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下...原创 2019-05-25 00:05:20 · 475 阅读 · 0 评论 -
SQL语句执行顺序
SQL语句执行顺序查询中用到的关键词主要包含六个,并且他们的顺序依次为select--from--where--group by--having--order by其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行from--where--group by--having--sel...原创 2019-03-28 14:05:52 · 186 阅读 · 0 评论 -
乐观锁与悲观锁
什么是乐观锁与悲观锁简单来说,乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中的人总是想着事情往坏的方向发展。各有各的优点悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞到知道它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统关系型数据库中就用到了很...原创 2019-03-10 12:35:21 · 120 阅读 · 0 评论 -
数据库锁机制
数据库锁数据库锁一般可以分为两类,一个是悲观锁,一个是乐观锁乐观锁一般是指用户自己实现的一种锁机制,假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。乐观锁的实现方式一般包括使用版本号和时间戳。 悲观锁一般就是我们通常说的数据库锁机制,以下讨论都是基于悲观锁。悲观锁主要表锁、...原创 2019-03-09 19:04:02 · 541 阅读 · 0 评论 -
游标与触发器
游标与触发器游标MySQL检索操作返回一组称为结果集的行,这组返回的行都是与SQL语句相匹配的行,使用简单的SQL语句没有办法的到相应的行数据,也不能逐行的成批处理所有行。游标是一个存储在MySQL服务器上的数据库查询,它不是一条SQL语句,而是被该语句检索出来的结果集,在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。创建游标DECLARE命名游标,并定义相应的SELECT...原创 2018-12-31 12:42:32 · 823 阅读 · 0 评论 -
正则表达式
正则表达式正则表达式是用来匹配文本的特殊的串基本正则表达式. 表示匹配任意一个字符| 表示或[] 表达式组- 表示范围\\ 转义字符匹配字符类[:alnum:] 任意字母和数字,同[a-zA-Z0-9][:alpha:] 任意字母[a-zA-Z][:blank:] 空格和制表[\\t][:cntrl:] ASCII控制字符 ASCII 0-31 和 127 [:dig...原创 2018-12-30 21:10:37 · 224 阅读 · 0 评论 -
事务处理与安全管理
管理实务处理实务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么完全不执行利用实务处理,可以保证一组操作不会中途停止,他们将作为整体执行,如果没有发生错误,整组语句提交给数据库表,如果发生错误则进行回退以恢复到某个已知且安全的状态e.g.1. 检查数据库中是否存在相应的客户,如果不存在,添加2. 提交客户信息...原创 2018-12-30 21:09:51 · 216 阅读 · 0 评论 -
存储过程
存储过程存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合,可将其视为批文件,虽然它们的作用不仅限与批处理为什么要使用存储过程1. 通过吧处理封装在容易使用的单元中,简化复杂的操作2. 由于不要求反复建立一系列处理步骤,这保证了数据的完整性3. 简化对变动的管理,延伸就是安全性总结就是简单,安全,高性能使用存储过程e.g. CALL productpric...原创 2018-12-30 21:08:57 · 135 阅读 · 0 评论 -
视图
视图视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询为什么使用视图1. 重用SQL语句2. 简化复杂的SQL操作,在编写查询后,可以方便的重用它而不必知道它的基本查询细节3. 使用表的组成部分而不是整个表4. 保护数据,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限5. 更改数据格式和表示,视图可返回与底层表的表示和格式不同的数据使用视图视...原创 2018-12-30 21:08:15 · 95 阅读 · 0 评论 -
SQL基本语句
SQL基本语句数据库基本操作1. 选择数据库 USE crashcourse2. 查看所有数据库 SHOW databases;3. 查看表结构 SHOW COLUMNS FROM customers SHOW CREATE DATABASE 和 SHOW CREATE TABLE 分别用来显示创建特定数据库或表的SQL语句 SHOW GRANTS ...原创 2018-12-30 21:07:02 · 161 阅读 · 0 评论 -
JDBC基础
1. 什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句 。 导入mysql数据库的驱动jar包: mysql-connector-java-5.1.39-bin.jar;原创 2017-08-15 21:07:21 · 311 阅读 · 0 评论 -
SQL基础
一、对数据库的操作1.创建库create database [库名];创建带有编码的create database [库名] character set [编码];查看编码show create database [库名];2.删除库drop database [库名];3.使用库use [库原创 2017-08-15 21:03:42 · 206 阅读 · 0 评论 -
连接池&DBUtils
一、为什么使用连接池 实际开发中”获得连接“或”释放资源“是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接connection。二、连接池概述 1.概念 用池来管理Connection,这样可以重复使用Connection。有了池,所以我们不用自己来创建Connection,而是通过池来获取Conn原创 2017-08-16 16:55:49 · 574 阅读 · 0 评论 -
MySQL存储引擎
插件式存储引擎是MySQL数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据,是否使用事物等。MySQL支持的存储引擎包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE等等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。默认情况下,创建新表如果不制定存储引擎,将使用默认的MyISAM,当然也可以修改默认设置。...原创 2019-05-29 22:35:26 · 166 阅读 · 0 评论