
MySQL高阶教程
文章平均质量分 51
以实战为线索,逐步深入MySQL开发各个环节,掌握数据库常用性能体验优化思路,打造完整MySQL知识体系,提升数据库编程能力和思维能力。
请保持优秀。
大智若愚,勤能补拙。
展开
-
MySQL高阶教程索引
导语:本教程是笔者用mysql做了一年多简单的开发后,对MySQL有了一定的理解,为了夯实自己的MySQL数据库基础,对MySQL进行了二次学习,期间记下了很多笔记,本教程即是以这些笔记为大纲,内容详尽,理论和实战相结合。如果觉得自己对MySQL的了解不够深入,可以阅读文中的知识概念,并亲手敲一遍文中的实例代码,走完整个教程之后,一定会让自己对MySQL有更加深刻的理解!本篇文章为整个教程的索引部分,可以在这里看到所有文章的层次关系,或者下载文章中使用的数据库SQL文件。一、M...原创 2020-12-03 11:12:39 · 6738 阅读 · 2 评论 -
MySQL架构介绍
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL的架构分层MySQL架构介绍插件式存储引擎架构,将查询处理和其它系统任务以及数据的存储提取相分离。这种架构可以根据业务的实际需要选择合适的存储引擎。MyISAM和InnoDB对比:NB的阿里巴巴,它用的mysql架构:Percona是一家国外的公司。...原创 2020-12-09 00:30:15 · 1632 阅读 · 0 评论 -
性能下降SQL慢
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍导致MySQL查询性能下降的原因性能下降SQL慢#单值索引、多值索引#单值索引(唯一索引、主键索引)只为某张表的某一个字段建立一个索引!create index idx_user_name on user(name);#复合索引(聚簇索引)为某张表的多个字段建立一个索引createindexid_user_name_...原创 2020-12-09 00:35:12 · 1663 阅读 · 0 评论 -
常见通用的Join查询
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL常见的join查询常见通用的Join查询SQL语句执行顺序:FROM:对FROM子句中的左表<left_table>和右表<right_table>执行笛卡儿积,产生虚拟表VT1; ON: 对虚拟表VT1进行ON筛选,只有那些符合<join_condition>的行才被插入虚拟表VT2;...原创 2020-12-09 00:39:42 · 1731 阅读 · 0 评论 -
索引是什么
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主讲的是MySQL索引的概念索引是什么是什么?所以,官方定义,索引它就是一种数据结构!一种什么样的数据结构呢?我们可以得出这样的结论:除数据本身之外,数据库还维护者一种满足特定查找算法的数据结构,这种数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级的查找算法,这种数据结构就是索引。...原创 2020-12-09 00:42:24 · 1826 阅读 · 0 评论 -
建立索引的优劣势
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL索引的优劣势建立索引的优劣势1、优势2、劣势...原创 2020-12-09 00:43:36 · 1575 阅读 · 0 评论 -
MySQL索引的分类
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL索引的分类MySQL索引的分类原创 2020-12-09 00:44:37 · 1519 阅读 · 0 评论 -
MySQL索引的结构
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL索引的结构MySQL索引的结构检索原理:...原创 2020-12-09 00:46:02 · 1596 阅读 · 0 评论 -
哪些情况下需要/不需要建立索引
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文讲述MySQL索引建立的场景哪些情况下需要/不需要建立索引1、哪些情况下需要创建索引2、哪些情况下不需要创建索引 表记录太少 经常增删改的表 why:虽然提高了查询速度,但同时会降低更新表的速度,如对表进行insert、update和delete。 因为更新表时,MySQL不仅要保存数据,还要保存一下索引...原创 2020-12-09 00:47:58 · 2735 阅读 · 0 评论 -
MySQL Query Optimizer
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL的SQL优化模块MySQL Query OptimizerMySQL Query Optimizer原创 2020-12-09 00:50:40 · 1733 阅读 · 0 评论 -
MySQL常见瓶颈
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL的常见性能瓶颈MySQL常见瓶颈原创 2020-12-15 10:06:50 · 1728 阅读 · 0 评论 -
Explain是什么?能干嘛?怎么玩?
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL自带的性能分析工具ExplainExplain是什么?能干嘛?怎么玩?explain的使用:#在查询语句前面加上一个explain即可,如:explain select * from department;包含字段:...原创 2020-12-15 10:13:06 · 2558 阅读 · 2 评论 -
Explain字段解释——id
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍Explain的常见字段——idExplain是什么?能干嘛?怎么玩?执行顺序:t1 -> t3 -> t2。如果是子查询,id号递增,id号越大,id值优先级越高,越先被执行。...原创 2020-12-15 10:14:59 · 2111 阅读 · 0 评论 -
Explain字段解释——select_type
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍Explain的常见字段——select_typeExplain字段解释——select_type...原创 2020-12-15 10:17:26 · 2412 阅读 · 0 评论 -
Explain字段解释——table
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍Explain的常见字段——tableExplain字段解释——tabletable意义:展示数据来自哪一张表 table作用:数据源就是指操作的哪张表呗!...原创 2020-12-15 10:21:56 · 1971 阅读 · 0 评论 -
Explain字段解释——type(重点)
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍Explain的核心字段——typeExplain字段解释——type(重点)1.system &constSystem只出现于单表单行(一张表只有一行数据)~基本不可能存在的2.eq_ref唯一性索引扫描,对于每一个索引键,表中只有一行数据与之对应,常见于主键或者唯一索引扫描。...原创 2020-12-15 10:28:09 · 3870 阅读 · 0 评论 -
Explain字段解释——possible_keys
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍Explain的常见字段——possible_keysExplain字段解释——possible_keys 问:什么是覆盖索引?如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表。问:什么叫一个索引包含了所要查询的所有列?就是存在一个索引,它包含了select后...原创 2020-12-15 10:30:14 · 6271 阅读 · 0 评论 -
Explain字段解释——Key_len
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍Explain的常见字段——Key_lenExplain字段解释——Key_len那什么是精确性呢?条件语句越多,越精确,所要耗费的索引长度也越长。...原创 2020-12-15 10:31:13 · 2019 阅读 · 0 评论 -
Explain字段解释——ref
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍Explain的常见字段——refExplain字段解释——refref指某个表“=”号后的东西。...原创 2020-12-15 10:32:35 · 7394 阅读 · 1 评论 -
Explain字段解释——rows
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍Explain的常见字段——rowsExplain字段解释——rows这是一个很典型的优化,and后的字段加个索引之后,表t2使用的就是普通索引了,所以它的type就变成了ref,rows也表少了许多。...原创 2020-12-15 10:33:35 · 2483 阅读 · 1 评论 -
Explain字段解释——Extra(重点)
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍Explain的常见字段——rowsExplain字段解释——Extra1、Usingfilesortfilesort产生原因:排序时没有用到索引列:2、Usingtemporary看例子:这是因为,groupby中只用到了联合索引中的后缀索引列。什么是前缀索引列...原创 2020-12-22 21:01:20 · 946 阅读 · 0 评论 -
索引分析
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL的SQL优化模块MySQL Query OptimizerMySQL Query Optimizer#1、索引分析#单表range(“>”)会使索引失效,会使comments后面的索引列(views)用不上!!!#两表左连接时,索...原创 2021-04-27 18:18:04 · 298 阅读 · 0 评论 -
一般性建议
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL的SQL优化模块的一般性建议一般性建议原创 2021-04-27 19:26:22 · 271 阅读 · 0 评论 -
永远小表驱动大表
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍查询截取分析模块的优化查询永远小表驱动大表#一(查询优化)、#1、...原创 2021-04-27 19:55:19 · 172 阅读 · 0 评论 -
慢查询日志
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍查询截取分析模块的慢查询日志慢查询日志原创 2021-04-27 20:07:49 · 390 阅读 · 0 评论 -
批量数据脚本
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍查询截取分析模块的批量数据脚本批量数据脚本自己写一个:该函数实现产生一个长度为n的随机字符串。...原创 2021-04-27 20:09:24 · 224 阅读 · 0 评论 -
Show Profile
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍查询截取分析模块的Show ProfileShow Profile...原创 2021-04-27 20:11:02 · 191 阅读 · 0 评论 -
索引失效(重点)
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL的SQL优化模块MySQL Query OptimizerMySQL Query Optimizer...原创 2021-04-27 19:22:26 · 397 阅读 · 0 评论 -
order by关键字优化
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍查询截取分析模块的优化查询order by关键字优化首先建立一张表,只有两个字段,age和birth,没有主键,但有一个联合索引index(age,birth)可以看到这样不会产生filesort,即两个都用到了age左前缀索引。但这样:orderby之后只跟了一个birth,第二个...原创 2021-04-27 19:55:30 · 268 阅读 · 0 评论 -
表锁
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL锁机制的表锁表锁#一、概述#3、锁分类#三、三锁#1、表锁加锁,看锁,解锁有啥影响呢? 读锁:为一张表添加读锁,创建两个会话连接,两个连接都可以读这张表,但是,本连接不能对表进行增、删、改操作,否则报错,其它连接对它的增、删、改操作不会报错,但...原创 2021-04-27 20:13:07 · 225 阅读 · 0 评论 -
行锁
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL锁机制的行锁行锁行锁有什么用?创建两个连接,在一个连接修改某一行的时候,但此时还未提交数据,另外一个连接也试图修改这一行数据,那么后者就会等待。但是,后者若修改其它行,则不会等待。举个例子:创建两个会话,在一个会话中执行:update test_innodb__lock set ...原创 2021-04-27 20:15:22 · 342 阅读 · 0 评论 -
主从复制
本教程中所使用的数据库的建表语句都在“MySQL高阶教程索引”这篇文章中,点击链接直达:索引&建表语句摘要:本文主要介绍MySQL锁机制的主从复制主从复制一主一从常见配置...原创 2021-04-28 10:11:29 · 433 阅读 · 0 评论