首页 / MYSQL / Mysql入门浅谈一
Mysql入门浅谈一
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql入门浅谈一,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2493字,纯文字阅读大概需要4分钟。
内容图文
![Mysql入门浅谈一](/upload/InfoBanner/zyjiaocheng/523/b5ef2f5687f24da4b40950dabf190e51.jpg)
Mysql其实非常重要对于学PHP的来说,因为不可能每个公司都会又DBA负责这一块(本人公司就没有,其实本人mysql也掌握的挺菜的),所以有时候要负责调优一些慢sql,以及一些表结构,这过程太酸爽了(我相信大家有深有体会了)。
要想优化一些查询语句你肯定要大概知道一条查询语句的运行历程吧(Server层),我大概画了一下(我这边随便画画的,将就一下hahaha)
!!!这里要说一下图上的查询缓存到mysql8.0之后已经被mysql停用了。
这边只会介绍Server层的东西向引擎层的就不多说了感兴趣可以自己去学习一下,图上的东西我一个一个大概说一下是啥吧
Query cache(查询缓存) :这个其实很好理解每次你新建了连接进来时候,比如说你查询过了的语句会以(Key-Value)被缓存起来, Key指的就是语句 Value就是结果,如果有相同的Key就会直接返回结果。看到这里你肯定会想这么好用为啥 8.0之后会被禁用掉了(黑人问号脸???),我以前也是这么觉得,后来了解了一下 原来每次更新后缓存就会失效,那这样缓存的命中率就太低了, 如果静态表的话那用这个还是很好的。Mysql还提供了按需缓存的功能,把配置 query_cache_type 设置为DEMAND (没记错应该是这个),然后查询的时候加上关键字就可以了,比如:”select SQL_CACHE * from student”;
语法分析器:这个其实就是字面意思,看你的查询语句是否有语法问题,如果有的话就会提示 ”You have an error in your SQL syntax“,(我刚学的时候经常报这个错,那时候在学校学的时候就是原生学的)
优化器:经历过上面的语法分析之后,就知道你要查哪个表哪个字段了,这时候优化器就很重要了,如果你查询条件有索引的话就会使用索引去查询(当然是按照一定规则,如联合索引最左原则之类的),当然它也不是全能的,不然也不需要手动优化语句了哈哈哈,接下来就是执行(差点忘了写了,执行的时候会做权限判断的,优化之前也会做precheck的,所以不用担心权限相关问题)。我这边举个优化的例子吧:
DDL:
CREATE TABLE `A` (
`id` int(10) NOT NULL,
`num` int(10) NULL,
PRIMARY KEY (`id`)
INDEX (`num`)
);
Insert into A (1,1),(1,2),(2,1),(2,2),(2,3)
CREATE TABLE `B` (
`id` int(10) NOT NULL,
`nums` int(10) NULL,
PRIMARY KEY (`id`)
INDEX (`nums`)
);
Insert into B (1,2)(1,5),(1,6)
“select A as a join B as b on `a.id`=`b.id` where a.num=2 and b.nums=6”
这条语句有两种执行过程
- 先查到a的num=2的id,再去查关联b的nums=6。
- 先查b的关联id再去查a
这两种结果虽然都是一样的但是效率就不一样了,优化器就是做这些工作的。
今天大概就写到这里了,再慢慢完善哈哈哈哈
Mysql入门浅谈一
标签:理解 type http join 运行 命中率 直接 family table
本文系统来源:https://www.cnblogs.com/jerrydailyphp/p/12858490.html
内容总结
以上是互联网集市为您收集整理的Mysql入门浅谈一全部内容,希望文章能够帮你解决Mysql入门浅谈一所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。