数据库相关
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 · 202 阅读 · 0 评论 -
数据库索引
索引概述 所有 MySQL 列类型都可以被索引,对相关列使用索引是提高 SELECT 操作性能的最佳途径。 MySQL 中索引的存储类型目前只有两种(BTREE 和 HASH),具体和表的存储引擎相关:MyISAM 和 InnoDB 存储引擎都只支持 BTREE 索引;MEMORY/HEAP 存储引擎可以支持 HASH和 BTREE 索引。 MyISAM 和 InnoDB 存储引擎的表默认创...原创 2019-05-22 20:57:41 · 216 阅读 · 0 评论 -
MySQL锁问题
MySQL锁概述 相对于其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎使用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下...原创 2019-05-25 00:05:20 · 489 阅读 · 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 · 214 阅读 · 0 评论 -
乐观锁与悲观锁
什么是乐观锁与悲观锁 简单来说,乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中的人总是想着事情往坏的方向发展。各有各的优点 悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞到知道它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统关系型数据库中就用到了很...原创 2019-03-10 12:35:21 · 136 阅读 · 0 评论 -
数据库锁机制
数据库锁 数据库锁一般可以分为两类,一个是悲观锁,一个是乐观锁 乐观锁一般是指用户自己实现的一种锁机制,假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。乐观锁的实现方式一般包括使用版本号和时间戳。 悲观锁一般就是我们通常说的数据库锁机制,以下讨论都是基于悲观锁。悲观锁主要表锁、...原创 2019-03-09 19:04:02 · 560 阅读 · 0 评论 -
游标与触发器
游标与触发器 游标 MySQL检索操作返回一组称为结果集的行,这组返回的行都是与SQL语句相匹配的行,使用简单的SQL语句没有办法的到相应的行数据,也不能逐行的成批处理所有行。 游标是一个存储在MySQL服务器上的数据库查询,它不是一条SQL语句,而是被该语句检索出来的结果集,在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。 创建游标 DECLARE命名游标,并定义相应的SELECT...原创 2018-12-31 12:42:32 · 831 阅读 · 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 · 235 阅读 · 0 评论 -
事务处理与安全管理
管理实务处理 实务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么完全不执行 利用实务处理,可以保证一组操作不会中途停止,他们将作为整体执行,如果没有发生错误,整组语句提交给数据库表,如果发生错误则进行回退以恢复到某个已知且安全的状态 e.g. 1. 检查数据库中是否存在相应的客户,如果不存在,添加 2. 提交客户信息 ...原创 2018-12-30 21:09:51 · 228 阅读 · 0 评论 -
存储过程
存储过程 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合,可将其视为批文件,虽然它们的作用不仅限与批处理 为什么要使用存储过程 1. 通过吧处理封装在容易使用的单元中,简化复杂的操作 2. 由于不要求反复建立一系列处理步骤,这保证了数据的完整性 3. 简化对变动的管理,延伸就是安全性 总结就是简单,安全,高性能 使用存储过程 e.g. CALL productpric...原创 2018-12-30 21:08:57 · 150 阅读 · 0 评论 -
视图
视图 视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询 为什么使用视图 1. 重用SQL语句 2. 简化复杂的SQL操作,在编写查询后,可以方便的重用它而不必知道它的基本查询细节 3. 使用表的组成部分而不是整个表 4. 保护数据,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限 5. 更改数据格式和表示,视图可返回与底层表的表示和格式不同的数据 使用视图 视...原创 2018-12-30 21:08:15 · 107 阅读 · 0 评论 -
SQL基本语句
SQL基本语句 数据库基本操作 1. 选择数据库 USE crashcourse 2. 查看所有数据库 SHOW databases; 3. 查看表结构 SHOW COLUMNS FROM customers SHOW CREATE DATABASE 和 SHOW CREATE TABLE 分别用来显示创建特定数据库或表的SQL语句 SHOW GRANTS ...原创 2018-12-30 21:07:02 · 173 阅读 · 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 · 319 阅读 · 0 评论 -
SQL基础
一、对数据库的操作 1.创建库 create database [库名]; 创建带有编码的 create database [库名] character set [编码]; 查看编码 show create database [库名]; 2.删除库 drop database [库名]; 3.使用库 use [库原创 2017-08-15 21:03:42 · 213 阅读 · 0 评论 -
连接池&DBUtils
一、为什么使用连接池 实际开发中”获得连接“或”释放资源“是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接connection。 二、连接池概述 1.概念 用池来管理Connection,这样可以重复使用Connection。有了池,所以我们不用自己来创建Connection,而是通过池来获取Conn原创 2017-08-16 16:55:49 · 586 阅读 · 0 评论 -
MySQL存储引擎
插件式存储引擎是MySQL数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据,是否使用事物等。 MySQL支持的存储引擎包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE等等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。 默认情况下,创建新表如果不制定存储引擎,将使用默认的MyISAM,当然也可以修改默认设置。 ...原创 2019-05-29 22:35:26 · 175 阅读 · 0 评论