锁 概念 锁是计算机协调多个进程或线程并发访问某一资源的机制.  在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素.从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂. 分类 1.从对数据操作的类型(读\写)分 读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响. 写锁(排它锁):当前写操作没有完成前,它会…
整体数据库设计,可见这一篇:Gemini.Workflow 双子工作流高级教程:数据库-设计文档 这里对各数据表进行介绍: 工作流里的设计表并不多,核心只有以下8个: 下面按照流程的顺序来介绍一下表的作用,很简单的就介绍完了: 1.流程定义表(WF_Definition) 流程定义,即画流程图,(点添加按钮,即跳转到画流程图界面) 流程定义:存档的是一个流程图的整体属性描述和总体控制功能. 2.流程图的图形数据存储(WF_Activity.WF_Transition) 先看一张流程图: 一张流程…
一.查询分析 1.永远小表驱动大表 使用小的数据集驱动大的数据集. //复习 EXISTS 的知识:SELECT ... FROM tb WHERE EXISTS (subquery) 是因为前后数据集不一致时EXISTS比IN性能更高. (子查询可以改写IN的写法为SELECT 1 FROM tb WHERE ...等) 对EXISTS的理解: 将主查询的数据,放到子查询中作条件验证,根据验证结果(TRUE | FALSE)来决定主查询的数据结果是否得以保留. 2.ORDER BY排序优化 现…
本节将介绍 MySQL 新建数据库,新建表,插入数据以及基本数据类型的相关知识.本节实验将创建一个名为 mysql_shiyan 的数据库,其中有两张表 employee和 department. 1. 准备 再安装并配置好MySQL的Linux系统上,先用以下两条命令打开 MySQL 服务并使用 root 登录: # 打开 MySQL 服务 sudo service mysql start #使用 root 用户登录,密码为空 mysql -u root 如果你理解了上述代码的含义, -u 和…
数据库加事务并不是数据就安全来了,事务和锁要分析清楚和配合使用 问题背景处于对高并发的秒杀环节的理解整理如下: 秒杀的时候高并发主要注意1.在秒杀的情况下,肯定不能如此高频率的去读写数据库,会严重造成性能问题的必须使用缓存,将需要秒杀的商品放入缓存中,并使用锁来处理其并发情况.当接到用户秒杀提交订单的情况下,先将商品数量递减(加锁/解锁)后再进行其他方面的处理,处理失败在将数据递增1(加锁/解锁),否则表示交易成功.当商品数量递减到0时,表示商品秒杀完毕,拒绝其他用户的请求.2.这个肯定不能直接…
MySQL常见瓶颈 1.cpu SQL中对大量数据进行比较.关联.排序.分组 2.IO a.实例内存满足不了缓存数据或排序等需要,导致产生大量物理 IO. b.查询执行效率低,扫描过多数据行. 3.锁 a.不适宜的锁的设置,导致线程阻塞,性能下降. b.死锁,线程之间交叉调用资源,导致死锁,程序卡住. 4.服务器硬件的性能瓶颈 top,free, iostat和vmstat来查看系统的性能状态 Explain(执行计划) 概念 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道M…
mysql逻辑架构 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用.主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离.这种架构可以根据业务的需求和实际需要选择合适的存储引擎. 1.连接层 最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信.主要完成一些类似于连接处理.授权认证.及相关的安全方案.在该层上引入了线程池的概念,为通过认证安全接入的客户…
数据库设计文档 数据库名:Workflow_New 序号 表名 说明 1 WF_Activity wf_Activity 2 WF_ActivityInstance wf_ActivityInstance 3 WF_App wf_WorkflowApp 4 WF_Definition wf_WorkflowDefinition 5 WF_Instance wf_WorkflowInstance 6 WF_TaskInstance wf_TaskInstance 7 WF_Transition w…
插入 INSERT语句语法 从其它表中拷贝数据 • 不必书写 VALUES 子句. • 子查询中的值列表应与 INSERT 子句中的列名对应 update语句 • 可以一次更新多条数据. • 如果需要回滚数据,需要保证在DML前,进行 设置: SET AUTOCOMMIT = FALSE; 因为mysql中默认事务是自动提交的. delete语句 子查询 概念 出现在其他语句内部的select语句,称为子查询或内查询内部嵌套其他select语句的查询,称为外查询或主查询. select firs…
alter table my_class add id varchar(10);alter table my_class change id id varchar(10) first;alter table my_class change class room varchar(10);truncate my_class;insert into my_class values('1','Java01','A101'),('2','Python01','B101');insert into my_c…