随笔分类 - SQL
摘要:1、查看锁 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; -- 记录当前运行的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 记录当前出现的锁 SELECT * FROM INFORMATION_S
阅读全文
摘要:读锁与写锁 读锁:共享锁、Shared Locks、S锁。 写锁:排他锁、Exclusive Locks、X锁。 读锁:只能读不允许写 写锁:不能读也不能写,只允许自己写 但是允许其他事务进行普通的select操作 读操作 对于普通 SELECT 语句,InnoDB 不会加任何锁 select …
阅读全文
摘要:事务的ACID原则 何为事务?把需要保证原子性、隔离性、一致性和持久性的一个或多个数据库操作称之为一个事务。 1、原子性(Atomicity) 转账操作是一个不可分割的操作,要么转失败,要么转成功,不能存在中间的状态,也就是转了一半的这种情况。我们把这种要么全做,要么全不做的规则称之为原子性。 2、
阅读全文
摘要:Explain关键字字段描述: Explain关键字字段详情描述 id 我们写的查询语句一般都以SELECT关键字开头,比较简单的查询语句里只有一个SELECT关键字,但是下边两种情况下在一条查询语句中会出现多个SELECT关键字: 1)查询中包含子查询的情况 2)查询中包含UNION语句的情况 查
阅读全文
摘要:下面这些sql都含有子查询: mysql> select * from t1 where a in (select a from t2); mysql> select * from (select * from t1) as t; 按返回的结果集区分子查询 1、标量子查询 那些只返回一个单一值的子查
阅读全文
摘要:连接查询应该是比较常用的查询方式,连接查询大致分为:内连接、外连接(左连接和右连接)、自然连接 下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。 内连接 以下三种写法都是内连接: mysql> select * from t1 j
阅读全文
摘要:对于一个SQL语句,查询优化器先看是不是能转换成JOIN,再将JOIN进行优化 优化分为: 1. 条件优化 2.计算全表扫描成本 3. 找出所有能用到的索引 4. 针对每个索引计算不同的访问方式的成本 5. 选出成本最小的索引以及访问方式 开启查询优化器日志 -- 开启 set optimizer_
阅读全文
摘要:索引代价 空间上的代价 一个索引都对应一棵B+树,树中每一个节点都是一个数据页,一个页默认会占用16KB的存储空间,所以一个索引也是会占用磁盘空间的。 时间上的代价 索引是对数据的排序,那么当对表中的数据进行增、删、改操作时,都需要去维护修改内容涉及到的B+树索引。所以在进行增、删、改操作时可能需要
阅读全文
摘要:索引的产生 当数据库引擎为InnoDB时插入数据的时候则会根据主键排序(如果没有主键呢?mysql会有一个隐藏的字段来排序) 当数据库引擎为MyISAM时插入数据的时候则会根据插入时的顺序来排序 在InnoDB下建议建表时必须创建主键,并且建议使用整型且为自增;在维护索引B+树的时候会相对来说性能会
阅读全文
摘要:Mysql架构图 存储引擎负责对表中的数据的进行读取和写入,常用的存储引擎有InnoDB、MyISAM、Memory等,不同的存储引擎有自己的特性,数据在不同存储引擎中存放的格式也是不同的,比如Memory都不用磁盘来存储数据。 在InnoDB中,数据会存储到磁盘上,在真正处理数据时需要先将数据加载
阅读全文
摘要:方法一:(Oralce不支持这种写法) useGeneratedkeys 默认值为 false,含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。 keyProperty 的值必须为数据库中主键且是自动增长的字段。(一般是
阅读全文
摘要:一、字符串类型 类型 范围 说明 Blob (Binary large objects)储存二进位资料,且有分大小写 辨別Null与Not Null :Null为允许储存空值(Null) 二、数字/数值类型 类型 范围 说明 例如 -3.4E+38~3.4E+38( 约 ) 辨別ZeroFill:当
阅读全文
摘要:在使用mysql自带的函数要慎重,说是会影响数据执行效率,代价太大。这个也要区分开,区分快软件的引用范畴,比如说内部系统业务逻辑比较复杂,功能点很细,但是并发量不是很大,这个时候用MySQL自带的函数可以大大的降低业务逻辑的开发难度(虽然说是片面,不能一概而论,但还是有很大用途的);而对外的系统的话
阅读全文
摘要:mysql分页关键字: limit m,n --m:表示从哪一行开始查,n:查询多少条 oracle分页关键字:: rownum SqlServer:top(2005以下版本) row_number()(2005以后版本) 查询前10条数据: 还可以这样写: 查询出第6条后面的5条数据: Oracl
阅读全文
摘要:1.%:表示零个或多个字符。在某些情况下需要中文查询,一般用两个%来查询,即%%; select * from user where name like %五%; -->表示:查询user表中的name为 xx五xx 、五xx、xx五 的信息; select * user from where na
阅读全文
摘要:1、备份数据库, 在cmd窗口中: mysqldump -uroot -p db_name > d:/1.sql 2、恢复数据到数据库 方式一: 在cmd中: mysql -uroot -p db_name < d:/1.sql 方式二: 在mysql客户端中 source d:/1.sql
阅读全文
摘要:数据库服务器操作: 登陆mysql服务器: mysql -uroot -pdamin -h IP地址 -- 连接指定IP地址的用户名为root 密码为admin的mysql服务器; net start MySQL 开启MySQL服务 net stop MySQL 关闭MySQL服务 Mysql 语句
阅读全文