数据库相关
文章平均质量分 80
Venlenter
这个作者很懒,什么都没留下…
展开
-
mysql批量插入最大限制
mysql批量插入慢怎么提升。max_allowed_packet,innodb_buffer_pool_size,事务转载 2022-09-28 10:44:46 · 7620 阅读 · 0 评论 -
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction解决
一、问题描述:同事反馈线上一个表有其中一条数据无法删除,其他都正常,我拿到删数据的sql,尝试执行,报错如下:mysql> delete from facebook_posts where id = 7048962;ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction二、问题处理从报错信息看,应该是关于这条数据有事物未提交,锁等待超时了,下面我们就开始验证并解决问题1、在sql执行期转载 2022-04-07 11:59:58 · 7832 阅读 · 0 评论 -
wait_timeout引发的mysql连接关闭问题(No operations allowed after connection closed)
一、背景最近这段时间,现网突然频繁的报连不上数据库No operations allowed after connection closed。2021-11-03 10:40:32.750 [TID:11458.146.16359072327350221] [http-nio-1192-exec-8] WARN com.zaxxer.hikari.pool.PoolBase -DatebookHikariCP - Failed to validate connection com.mysql原创 2021-11-03 15:58:10 · 4773 阅读 · 0 评论 -
Mysql 同样的值varchar(50)和varchar(225)有区别么
create table student(name varchar(50))insert into student (name) values ('小明')对于同样的值"小明",mysql有什么区别1、对于物理存储上来说,没有区别mysql存储行记录varchar的数据,是以下面的形式的,在【变长字段长度列表】这个块中存储varchar字段真实的length 所以对于同样的值“小明”,mysql都是存储同样的值到【列1的值】,同时存储【02】到【变长字段长度列表】2、但对于查...原创 2021-06-23 16:45:52 · 2041 阅读 · 0 评论 -
Explain 详解
0、基础explain语句输出的各个列作用如下列名 描述 id 在一个大的查询语句中每个SELECT关键字都对应一个唯一的id select_type SELECT关键字对应的那个查询的类型 table 表名 partitions 匹配的分区信息 type 针对单表的访问方法 possible_keys 可能用到的索引 key 实际上使用的索引 key_len 实际使用到的索引长度 ref 当使用索引列等值原创 2021-06-21 19:06:25 · 309 阅读 · 0 评论 -
Mysql中B+树索引详解与使用
一、背景知识(InnoDB 数据页结构)1、InnoDB为了不同的目的而设计了不同类型的页, 我们把用于存放记录的页叫做数据页2、一个数据页可以被大致划分为7个部分,分别是File Header,表示页的一些通用信息,占固定的38字节 Page Header,表示数据页专有的一些信息,占固定的56个字节 Infimum + Supremum,两个虚拟的伪记录,分别表示页中的最小和最大记录,占固定的26个字节 User Records:真实存储我们插入的记录的部分,大小不固定 Free S原创 2021-06-21 18:58:04 · 640 阅读 · 0 评论 -
多个单列索引和联合索引的区别详解
背景:为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。一、联合索引测试注:Mysql版本为 5.7.20创建测试表(表记录数为63188):CREATE TABLE `t_mobilesms_11` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `userId` varchar(255) CHARACTER SET转载 2021-04-19 17:05:55 · 402 阅读 · 0 评论 -
mysql驱动表、被驱动表、大表小表及join优化
驱动表与被驱动表先了解在join连接时哪个表是驱动表,哪个表是被驱动表:1.当使用left join时,左表是驱动表,右表是被驱动表2.当使用right join时,右表是驱动表,左表是被驱动表3.当使用join时,mysql会选择数据量比较小的表作为驱动表,大表作为被驱动表join查询如何选择驱动表与被驱动表 在sql优化中,永远是以小表驱动大表。例如: A是小表,B是大表 使用left join 时,则应该这样写select * from A a left join B转载 2021-03-30 11:12:09 · 13257 阅读 · 3 评论 -
MYSQL explain详解
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。虽然这篇文章我写的很长,但看起来真的不会困啊,真的都是干货啊!!!!先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROMuchome_spaceASs,uchome_spacefieldASfWHER...转载 2021-02-23 11:55:14 · 94318 阅读 · 13 评论 -
Mysql高性能优化规范建议
数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀 所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询转载 2021-02-20 10:50:40 · 257 阅读 · 1 评论 -
mysql约束(constraint)和索引详解和区别
一、什么是约束约束英文:constraint约束实际上就是表中数据的限制条件二、约束作用表在设计的时候加入约束的目的就是为了保证表中的记录完整和有效比如name字段中要让其用户名不重复,这就需要添加约束。或者必须注册的时候需要添加邮箱等三、约束种类非空约束(not null) 唯一性约束(unique) 主键约束(primary key) PK 外键约束(foreign key) FK 检查约束(目前MySQL不支持、Oracle支持)下面将逐一介绍以上约束转载 2020-09-25 10:21:08 · 7038 阅读 · 0 评论 -
神通数据库常用命令行
1、命令行连接:isql -d osrdb -P 2003 -U sysdba/szoscar552、后台创建库命令(中括号代表可选) 2.1 进入后台:oscar/kstore 列出库:list database 删除库: drop database osrdb 创建库:create database osrdb [encoding 'GBK'] 2.2 标准化库:oscar -o restrict -d osrdb 2.3 安装库:oscar -o inst...转载 2020-09-24 09:30:09 · 21762 阅读 · 1 评论 -
Redis高频面试题(来自字节跳动,腾讯,百度面试题总结)
Redis面试题 概述 什么是Redis Redis为什么这么快 Redis 数据类型 Redis有哪些数据类型? Redis的zset实现原理及时间复杂度 持久化原理 什么是持久化 持久化方式RDB和AOF底层原理 RDB和AOF的优缺点和使用场景 如何选择RDB和AOF RDB 和 AOF在数据恢复时的优先级? 事务 什么是事务? Redis事务的概念 Redis事务命令 Redis事务使用方法转载 2020-08-12 17:35:30 · 726 阅读 · 0 评论 -
数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩
一、第一范式1NF是对属性的原子性,要求属性具有原子性,不可再分解;表:字段1、 字段2(字段2.1、字段2.2)、字段3 ......如学生(学号,姓名,性别,出生年月日),如果认为最后一列还可以再分成(出生年,出生月,出生日),它就不是一范式了,否则就是;二、第二范式2NF是对记录的惟一性,要求记录有惟一标识,即实体的惟一性,即不存在部分依赖;表:学号、课程号、姓名、学分;这个表明显说明了两个事务:学生信息, 课程信息;由于非主键字段必须依赖主键,这里学分依赖课程号,姓名依赖转载 2020-08-10 21:15:21 · 1514 阅读 · 1 评论 -
SQL Server配置管理器没有任何项目
今天安装了SQL2017后,连接数据库发现报sql错误2,想着是MSSQLSERVER服务没开,就去配置管理器打开,但是发现新安装的sql,显示没有任何项目辗转查了好久才发现导致的原因是:安装sql过程中,添加实例为当前系统用户,但是之后我修改过系统的计算机名称,导致原实例MSSQLSERVER不识别,所以不显示也不识别。解决方法有:(选择其中一种执行即可)(1)把计算机的名称原创 2017-09-10 23:17:14 · 53577 阅读 · 16 评论 -
Mysql where条件对int字段的处理
今天操作mysql数据库,进行select的时候发现,mysql可以直接对int字段传string类型值。 如表student,字段Id(int),可以select * from student where id='12abc'。发现可以查到id=12的记录。 原理:Mysql会将传入的string(要赋值给int字段的)从左到右的第一个非数值开始,将后面的字符串转成0,在和数原创 2017-08-08 15:00:18 · 6798 阅读 · 1 评论 -
导出Sql数据库文件mdf
导出Sql数据库文件mdf原创 2017-06-11 15:05:20 · 7231 阅读 · 0 评论 -
sql之left join、right join、inner join的区别
sql之left join、right join、inner join的区别转载 2016-11-28 17:53:52 · 478 阅读 · 0 评论