MYSQL进阶
fan_of_ZYL
这个作者很懒,什么都没留下…
展开
-
union,union all合并结果集
关于union,union all的用法union查询结果集后自动去重,而union all不去重union去重时,会调用相应的算法,因此union all比union更高效请看此例:这是exam表:select * FROM examUNION allselect * FROM exam结果是这个样子:那么union 呢?select * FROM examUNI...原创 2019-03-16 19:35:39 · 1117 阅读 · 0 评论 -
数据库优化
为什么要进行数据库优化避免网站页面出现访问错误(由于数据库连接timeout产生页面5XX错误;由于慢查询造成页面无法加载;由于阻塞造成数据无法提交)增加数据库的稳定性(很多数据库问题都是由于低效的查询引起的)优化用户体验(流畅页面的访问速度;良好的的网站功能体验)MYSQL数据库优化SQL及索引优化根据需求写出良好的SQl,并创建有效的索引,实现某一种需求可以有多重写法,这时候...原创 2019-08-17 10:39:16 · 110 阅读 · 0 评论 -
数据库存储引擎
InnoDB是MYSQL默认的事务型存储引擎,只有在需要他不支持的特性时,才考虑使用其他存储引擎。实现了四个标准的隔离级别,默认级别是可重复读(REPEATABLE READ)。在可重复读隔离级别下,通过多版本并发控制(MVCC)+间隙锁(Next-Key Locking),防止幻影读。主索引是聚簇索引,在索引中保存了数据,从而避免直接读取磁盘,因此对查询性能有很大的提升。内部做了很多优...原创 2019-08-06 20:20:26 · 126 阅读 · 0 评论 -
数据库查询性能优化
使用EXPLAIN进行分析explain用来分析SELECT查询语句,开发人员可以通过分析Explain结果来优化查询语句。可以查询的比较重要的字段有:select_type:查询类型,有简单类型,联合查询,子查询等key:使用的索引rows:扫描的行数优化数据访问减少请求的数据量只返回必要的列:最好不要使用SELECT*语句;只返回必要的行:使用LIMIT语句来限制返回的...原创 2019-08-06 19:28:28 · 517 阅读 · 0 评论 -
B+Tree原理
B+Tree结构B Tree指的是平衡树,并且所有叶子节点位于同一层。B+Tree是基于B Tree和叶子节点顺序访问指针进行实现,它具有B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。在B+Tree 中,一个节点中的key从左到右非递减排列,如果某个指针的左右相邻key分别是key1和key2,且不为null,则该指针指向几点的所有key大于等于keyi且小于等于key...原创 2019-08-01 19:54:57 · 5627 阅读 · 0 评论 -
MYSQL数据库如何写注释
方式一注意:在写注释时,–与注释之间必须要一个空格select * from stu -- 注释方式二注意:这种方式比较随意,加不加空格不影响select * from t_info #注释select * from t_info#注释select * from t_info # 注释方式三select * from t_info/*注释*/...原创 2019-07-26 11:16:12 · 7376 阅读 · 2 评论 -
数据库三大范式
范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF)...转载 2019-07-26 10:33:16 · 487 阅读 · 1 评论 -
关于Next_key Locks
在MYSQL中,Next-Key Locks是InnoDB存储引擎的一种锁实现方式。在重复读的隔离级别下,使用MVCC+Next-Key Locks可以解决幻读问题1. Record Locks表示锁定一条记录上的索引,而不是这条记录。那么如果没有设置索引的话,InnoDB会自动在主键上创建隐藏的索引,则可以继续使用。2. Gap Locks锁定索引之间的间隙,但是不会包含索引,就是两条...原创 2019-07-26 09:47:11 · 167 阅读 · 1 评论 -
数据库基础
过滤对于查询结果集进行过滤select * from mytablewhere col is NULL通配符【只能用于文本字段】%匹配>=0个任意字符_匹配==1个任意字符[]可以匹配集合内的字符,举个栗子,【ab】j将匹配a或者b。[^]不匹配框内的字符select *from mytablewhere col like '[^AB]%';#匹配不以A和B...原创 2019-07-30 20:50:17 · 146 阅读 · 0 评论 -
SQL语句实现字段和数据的增删改查
创建表其中:id,name,sex为字段名称(属性名),comment为备注信息# 表名create table `student` (# int类型 不为空 自增 `id` int not null auto_increment,# 字符串类型 `name` varchar(64) not null comme...原创 2019-07-30 17:12:45 · 212 阅读 · 0 评论 -
数据库中并发问题及解决办法(锁与数据库隔离级别)
数据库并发一致性问题在并发环境下,事务的隔离性难以保障,就会出现很多并发一致性的问题为方便表示,用“T”表示事务丢失修改T1和T2都对一个数据进行修改,T1先修改,T2后修改,T2的修改覆盖掉了T1的修改,则使得T1对数据库数据的修改丢失。...原创 2019-07-25 13:20:19 · 506 阅读 · 1 评论 -
数据库事务
什么是数据库事务数据库事务,简称事务,是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。(来自百度文库)事务是满足数据库事务四个特性的一组操作,这四个特性可记为:ACID(自己理解)其中:A: Atomicity原子性,表示事务被看做不可分割的最小单位,对于本次事务的所有操作,要么全部成功,要么全部回滚(失败)C:Consistency一致性,表示...原创 2019-07-25 10:02:21 · 207 阅读 · 0 评论 -
MYSQL基本增删改差和修改表、列名
修改列名方法一:其中表如图所示:表名:emp在编辑器中输入如下语句:alter table emp change deptno deptno1 int(4)结果如图所示:可以看到列名已经被修改!方法二:表同上,输入以下语句,其详细信息如图:其中:desc emp 是查询表的详细信息alter table emp modify deptno int(20);结果如下图:...原创 2019-03-24 11:20:07 · 209 阅读 · 0 评论 -
MYSQL慢查询的优化案例
函数Max()的优化从下图可知,row行数较多,效率较低select max(payment_date) from payment; explain select max(payment_date) from payment; //查看执行计划如何优化?(创建索引)create index inx_paydate on payment(payment_date);...原创 2019-08-18 13:43:29 · 682 阅读 · 0 评论