数据库
文章平均质量分 51
Janelare
码农
展开
-
Lock wait timeout exceeded; try restarting transaction
Lock wait timeout exceeded; try restarting transaction1、lock wait != deadloccklock wait 实际上只是事务等待处理的时间超时了,而并非死锁,与deadlock是由区别的。当出现这个报错的时候,实际是在之前的某个任务就已经把资源占用了,而且还占着并释放,导致后面的事务请求不到资源。并非相互等待资源。只需要找到埋坑的事务就可以了,而这个坑往往是程序处理不当导致的,比如程序异常了,忘记写事务commit 或者 ro原创 2020-08-28 16:11:31 · 152 阅读 · 0 评论 -
InnoDB 行级锁与表级锁
InnoDB 存储引擎支持行和表级锁,那么,什么场景下会锁住行、什么场景下又会锁住表呢?InnoDB 行级锁是通过给索引上的索引项加锁来实现的,所以,只有通过索引条件检索的数据,InnoDB 才会使用行级锁。否则,使用表级锁。总结下来:不通过索引条件查询时,InnoDB 一定会使用表锁,而不是行锁(因为没有索引只能全表扫描) 查询时,不论是使用主键索引、唯一索引或者普通的索引,InnoDB 都会使用行锁来对数据加锁对于第二条,在有些特殊情况下是不成立的。例如,对于数据量很少的表,MySQL 会认原创 2020-08-19 11:13:31 · 938 阅读 · 0 评论 -
数据库表设计的范式与反范式
由于之前完全范式的思维比较根深蒂固,所以在进行数据库表设计的时候,将表按模块划分清楚后,并尽量使每张表的内容干净无冗余。比如:t_business(recordguid, userguid,goodsguid,payguid) (主键,购买人guid, 商品guid,支付guid)当要统计查询某时段的交易信息时,前端需要展示用户名称,商品名称,支付金额时查询的sql t_business需要去关联用户信息表,商品信息表,支付信息表。这种的好处是表结构单纯,没有冗余,节省物理空间,但是统计语.原创 2020-07-27 18:16:49 · 376 阅读 · 0 评论 -
sqlserver实例配置与身份验证的选择
1、sql server在安装时会要求进行实例配置。此实例配置与以后每次登录都需要的服务器名称有关。如下图如果选用默认实例,那么登录是的服务器名称可以是英文符号点或者localhost或本地IP。一般情况下不选用此方式。命名实例是可以自己更改名字的,默认是SQLExpress。此种方式的登录名称是 计算器名称/实例名称,如下图 。2、windows 登录方式和s原创 2017-04-11 12:02:49 · 13572 阅读 · 0 评论 -
mysql支持的存储引擎
转自:http://www.jb51.net/article/55849.htm;前言在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,我们都会关注一个问题,使用什么存储引擎。等一下,存储引擎?什么是存储引擎?什么是存储引擎?关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表转载 2016-09-19 09:34:24 · 374 阅读 · 0 评论 -
一台设备上安装多个Mysql服务器
将已安装的数据库文件夹复制到另一个目录下打开复制目录下的my.ini文件修改[client] port=3307 #第一个数据库的默认端口是3306 这里需要另外启用一个端口 # The TCP/IP Port the MySQL Server will listen on port=3307 # Path to installation转载 2016-10-31 16:05:53 · 1472 阅读 · 0 评论 -
mysql学习之事务处理
1、事务处理:用来维护数据的完整性、保证成批的MySql操作要么完全执行、要么完全不执行。2、使用ROLLBACK命令来撤销mysql语句实例:[1]select * from task;//表数据不为空[2]start transaction;//标识事务的开始[3]delete from task;//删除表中所有数据[4]select * from task;原创 2016-10-11 14:22:26 · 327 阅读 · 0 评论 -
mysql学习之触发器
1、啥是触发器: 数据库的触发器总让我想起程序中的事件。 它是在某个条件达到后自动执行一系列语句以完成某个功能。 对于数据库来说,触发器是在执行了delete, insert,update的某些语句后自动执行的一条或多条语句。 目前mysql5仅表的delete ,insert,update,支持触发器,视图不支持。2、创建触发器CREATE TRI原创 2016-10-11 08:34:08 · 548 阅读 · 0 评论 -
mysql学习之游标
1、游标的作用: 一般检索出来的结果都是符合条件的一组结果集合,有时需要在检索出来的结果中前进或后退一行或多行,这时就需要使用游标。 游标是一个存储在MySql服务器上的数据库查询,它不是一条select语句,而是被该语句检索出来的结果集。MySql的游标只能用于存储过程。2、使用游标步骤 1)声明 2)打开 3) 使用原创 2016-10-10 10:49:04 · 305 阅读 · 0 评论 -
mysql学习之存储过程
1、什么是存储过程 在我看来,存储过程类似于我们编程中的过程或函数。由多条SQl语句来实现一个比较复杂的功能。2、作用 1)通过把处理封装在容易使用的单元中,简化复杂的操作 2)通过把处理封装在容易使用的单元中,简化复杂的操作。像接口一样,所有的开发人员和应用程序调用相同的存储过程,保证了数据安全和统一 3)简化对变动的管理。如果表名、列名或业原创 2016-09-19 15:07:12 · 243 阅读 · 0 评论 -
mysql学习之视图
视图是虚拟的表,不包含任何数据,实质是一个SQL查询。一、作用:1、重用SQL语句2、简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道它的基本查询细节。3、使用表的组成部分而不是整个表。4、保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。5、更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据二、特点:1、视图命名原创 2016-09-19 11:01:40 · 241 阅读 · 0 评论 -
mysql学习之正则表达式查询
正则表达式关键字:REGEXP select procId,ProcName from products where procName REGEXP ‘abc’等同于 select procId,ProcName from prodicts where procName like '%abc%'匹配不区分大小写, 如需要区分大小写 可在正在表原创 2016-09-06 14:34:52 · 328 阅读 · 0 评论 -
MySql学习之简单关键字、检索、通配
关键字USE、 SHOW--查看所有数据库 SHOW DATABASES --选择数据库 USE [数据库名] eg: USE smsota--显示数据库中所有表 USE [数据库名]; SHOW TABLES; --显示表中所有的列项 USE [数据库名]; SHOW CO原创 2016-09-06 10:54:08 · 2369 阅读 · 0 评论 -
mysql学习之Group by 与 Order by
此处主要是讨论Group by 与 Order by 排序区别。group by 主要是用于分组聚集,而order by是排序group by 分组后也是经过排序的,是按照分组条件来进行排序的,可能最终结果并不是我们想要的排序方式。例select Cust_Id,count(*) As OrderNumfrom orderswhere Price >=原创 2016-09-12 10:06:31 · 409 阅读 · 0 评论 -
mysql学习之Having 与 Where
where 和 having 都是过滤操作,在句法上都是一致的。 where 是过滤行,having 是过滤组。此例只能使用havingselect Cust_Id,count(*) As Orderfrom ordersgroup by Cust_Id having count(*) >= 2此处需要过滤个数大于等于2以上的上所有组,所以只能用having原创 2016-09-12 10:02:17 · 454 阅读 · 0 评论