
MySQL
文章平均质量分 73
hsc_1
这个作者很懒,什么都没留下…
展开
-
数据库的左外联结和右外联结
使用的数据库含有的数据如下当使用左外联结的时候,以左边的表为标准,找到右边表中相应的对等元素,然后两行联结,如果右边表不包含相应的对等元素,此行对应的右边元素全为NULL。SELECT * FROM student LEFT OUTER JOIN major ON student.no=major.no;输出的结果为:+---------+-------------+-------+-------...原创 2018-03-13 07:38:00 · 713 阅读 · 0 评论 -
MySQL中innodb的索引和锁
innodb是支持行锁的。并且,索引可以让查询锁定更少的行。 如果你的查询从不访问那些不需要的行,那么就会锁定更少的行,从两个方面可以来看这对性能有好处 虽然innodb的行锁效率很高,内存使用也很少,但是锁定行的时候仍然会带来额外的开销 锁定超过需要的行会增加锁征用并减少并发性。 innodb只有在访问行的时候才会对其加锁,而索引能够减少innodb访问的行数,从而减少...原创 2018-07-31 10:00:19 · 1006 阅读 · 0 评论 -
MySQL中通过一个表的数据更新另一个表的数据
高性能MySQL中有一个更新语句,让我有点惊讶。 那就是如下这句:update actor inner join film_actor using (actor_id) set actor.last_update=film_actor.last_update; 这个更新的是个什么鬼,actor inner join film_actor using (actor_id)的结果...原创 2018-07-21 11:18:40 · 2132 阅读 · 0 评论 -
Mysql事物的4种隔离级别
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Re...转载 2018-07-26 16:00:26 · 462 阅读 · 0 评论 -
mysql中 执行计划的extra字段---- using where , using index 和 using where & using index 整理
原文地址是:https://blog.youkuaiyun.com/hsc_1/article/details/81140758先上表结构: CREATE TABLE table ( xxx varchar(20) NOT NULL, yyy varchar(20) NOT NULL, zzz datetime NOT NULL, aaa varchar(10) NOT NULL, PRIMA...转载 2018-07-21 08:11:47 · 1959 阅读 · 0 评论 -
MySQL中的innodb引擎的数据结构
在看高性能MySQL中,看到一个查询。 当时觉得explain的结果很没道理。explain select film_id from film order by title limit 50,5; 结果是这样的。 其中film这个表的索引如下 我就在想,通过对title排序,然后进行limit 50, 5。这个没问题,那就是通过索引就可以快速的操作。 ...原创 2018-07-21 07:56:47 · 6723 阅读 · 0 评论 -
mysql中变量赋值的顺序
今天看高性能mysql中的6.7.9的自定义变量。 其中以一句话让我有点懵逼,那就是:使用用户自定义变量的一个最常见的问题就是没有注意到在赋值和读取变量的时候可能是在不同的阶段。 之后有一个对这句话的解释就是:这些出乎意料的结果可以在EXPLAIN语句中找到,注意看在Extra列中的'Using where', 'Using temporara'或者'Using filesort'...原创 2018-07-20 19:32:42 · 2579 阅读 · 2 评论 -
将mysql语句输出
1.select 列1,列2, ....... 列n from tbname [where 条件] into outfile "C:/Users/****/Desktop/output.txt"2.load data local infile "C:/Users/****/Desktop/output.txt" into table tbname原创 2018-05-24 09:35:29 · 9219 阅读 · 0 评论 -
MySQL之使用游标
MySQL检索操作返回一组成为结果集的行。使用简单的SELECT语句,例如,没有办法得到第一行、下一行或前10行,也不存在每次一行的处理所有行的简单办法。有时,需要再检索出来的行中前进或后退一行或多行。这就是使用游标的原因。MySQL游标只能用于存储过程(和函数)。创建游标DELIMITER //CREATE PROCEDURE processorders()BEGINDECLARE ord...原创 2018-03-13 21:21:44 · 255 阅读 · 0 评论 -
MySQL中的视图
视图是虚拟的表,它不包含表中应该有的任何列或数据,它包含的是一个SQL查询。视图使用常见的规则和限制与表一样,视图命名必须唯一(不能取名和已有视图或表相同)视图可以嵌套,可以利用从其他视图中检索数据的查询来构造一个视图ORDER BY 可以用在视图中,但如果从该视图检索数据SELECT也包含ORDER BY,那么该视图中的ORDER BY 将会被覆盖视图不能索引,也不能有关联的触发器或默认值视图可...原创 2018-03-13 21:04:38 · 248 阅读 · 0 评论 -
MySQL触发器
触发器就是某个表发生更改时的自动处理,和python中的装饰器模式相似。触发器是MySQL响应以下语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句):INSERT DELETE UPDATE其他MySQL语句不支持触发器。创建触发器mysql> DELIMITER //mysql> CREATE TRIGGER sBack AFT...原创 2018-03-13 17:58:12 · 389 阅读 · 0 评论 -
MySQL使用存储过程
存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。在我看来和编程语言中的函数是一样一样的。 也就是需要定义函数,和调用函数。创建存储过程创建存储过程之前需要注意的是,默认的MySQL语句的分割符为";",而存储过程是一些SQL语句,每个SQL语句的结尾需要使用分隔符,而定义存储过程也要使用分隔符,这样就会造成语法错误。mysql> CREATE PROCEDURE p...原创 2018-03-13 16:47:58 · 209 阅读 · 0 评论 -
MySQL控制事物处理
事物处理可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要不完全不执行。事物处理需要知道的几个术语:事物(transaction) 指一组SQL语句回退(rollback)指撤销指定SQL语句的过程提交(commit)指将未存储的SQL语句结果写入数据库表中保留点(savepoint)指事物处理中设置的临时占位符,你可以对它发布回退(与回退整个事物不同,可以部分的回退)使用RO...原创 2018-03-13 16:03:26 · 287 阅读 · 1 评论 -
mysql中create table的时候设定的int(M)后面的数字的含义
MySQL可以为整数类型指定宽度,例如INT(11),对大多数应用是没有意义的:它不会限制值得合法范围,只是规定了MySQL的一些交互工具(例如MySQL命令行客户端)用来显示字符的个数。对于存储和计算来说,INT(1)和INT(20)是相同的。...原创 2019-07-15 07:55:13 · 2213 阅读 · 0 评论