尚硅谷MySQL高级_笔记

所需积分/C币:42 2018-10-05 18:42:49 20.69MB PDF
98
收藏 收藏
举报

尚硅谷MySQL高级的视频学习笔记,由本人整理
2MySQ逻辑架构 Connectors Native C APL, JDBC, ODBC, NET, PHP, Porl, Python, Ruby, Cobol My SQL Server: Management Connection Pool Authent cation, Thread Reuse, Connecton Limits, cock Emory Caches SoL Interface Parser Caches Butters D. DD. Cuery Translaton, AcoG Pass Recovery. Searcy Stored Procedures Obect Protege Speac Caches vews. Triggers, etc. Butters M可dcd Teradata Pluggable storage EngInes Momor, Index Storago Management 恩團 Archive Federated Memory 2008+ File system FIles& Logs Hodo Undo, Data, Index, Binary Error. Query ana Sow 总体概览 其它数库相比,MSQL点与众不同,的架构可以存多和不同场景中应用耳挥良奸作用。丰要体现在存储引擊的架构 许件式的存储引擎架构科查询过建和其它的系统任务以及数据的存储辑取相分富。这卖构可以根世务的求和实安选择合违的仔引家 2NyS词构 Connectors NET, PHP Por, Python, Ruby, Cobol MySQL Server Autheatcaton Threed Reuse Camoc on Umts Crock Memory Caches Quey Transat 1.连接层 最上层是一些客户端和连接肢务,包含本地sock通信和大多数基于客户端务端工具实现的类似于cpp的通信。主要完成一些类似于连接处 理、授权 关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端供线程。同样在该层上可以实现基于 SSL的链接:服务器会为安令入的每个客户端验证它所具有的操作权限 2服务层 第二尼来构二要亢成大多少的核心服务功能,如SL接口,并完成缓存的查询 所和优化及部分内置函数的执行:所有诗存储引享的 功能也在这一层实现,如过程、函数等:在该层,服务器会解析查询并创建相应的 树,并对其元成相应的优化如确定查淘表的顺序, 是否利用索引等,最后生成相应的执行操作。如果是 select语句,服务器近会查询 果存空间足够大,这样在解决大量读操作的 环境中能够很好的提升系统的性能。 3引层 存储引层,存请引真正时负责了MSQL中数据的存储和提取,屐务器漏讨AP与存储引讲行信。不同的存倩号鍪具有的功能不同,这 样我们可以根据自己的实际需要进行选取。后面介绍 MyI SAM和 InnoDB 3引军层 存储引鞏层,存储引率真正的负了My⑤QL肀效据的存储和提取,服务器通过A与存储引率进行通信。不同的存诸引率具有的功能不同,这 样我们可以根据自己的实际需要进行选取。后面介绍 MylSAM和noDB 4存储层 效搭存佬层,主樊是将粼据存在运行十裸各的文件系统之上,并完成与存储引擎的交 3存储引擎 Mysq简介+ MysqlLinux版的安装-my55 Mysq配置文件 1my的架构介绍Mysq逻辑架构介绍 查看命令冒 Mysq储引擎 My ISAM和 nno DB冒 阿里巴、淘宝用哪个 ens ines Engine I Support Comert TransactionsIXAISavepoints DEFAULT Supers transact ions, rom-level locking, and foreign kera I VES YES Csv gtorage engine civ storAgE I BLACKHOLE Ade,rull storage engine (anything you wr ite to it disappears) based, stored in memory, useuI fa CulluctiJu uf identi-aI My I GAX Lab lus omooo Arch:o stora engine FEDERATED Federated Vy saL storage engine NULL NULL I PERFORVANCE_SCHEMA I YES Ferformance schema a rcws in set (aou sec my sq 1> show variables like storage engine Variable name Value default storage engine InnoDE storage engine InnoDb 2 rows in set (0.00 se 两种存储引擎的对比 MyISAM和noDB 对比项 MyISAM InnoDB 主外键 不支持 支持 事务 不支持 支持 行表锁 表铺,即使操作一条记录也会锁住整行锁操作时只锁某一行,不对其它 个表,不适合高并发的操作 行有影响 合高并发的操作 缓存 只缓存素引,不缓存真实数据 不仅缓存引还要缓存真实数据,对 I内存要求较岛,而且内存大小对性能 有决定性的影响 表空间 小 关注点 事务 默认安装 Y 阿里巴巴淘宝用哪个 Percona的 strad 阿里巴巴、淘宝用哪个 主要力 否可投人 m。兔离t共存引的器右其们为析工具 XEPNDB 兔要扩展M3aL以包难dB和其注能进 z接供光S更大的以扩民性性能改 · Percona为MysL数据服务器法行了改进,在功能和性能上较MsQL自首很显著的提升,该版本提升了在高负载情况 下的 InnoDB的件、为DEA提供一些主常有用的性能诊断工具;另外有可多的参数和命令来挖制服务器行为 ·该公司新建了一款存储引擎叫 trad b完全可以替代nno,并且在性能和并发上做得更好, 阿里巴已大部分mysq数撸库其实使用的 percona的愿型加以修改 e Aliscl+AliRedis 4.SQL性能下降原因 性能下降SQL慢 执行时间长 等待时间长 索引优化分析 常见通用的]oin查询+ 索引简介+ 性能分析 索引优化+ 查询语句写的烂 性能下降SQL慢 单值 执行时间长 素引失效冒复合 等待时间长 关联查询太多join(设计缺陷或不得已的需求) 服务器调优及各个参数设置(缓冲、线程数等) 常见通用的Join查询+ 索引简介+ 性能分析 索引优化+ 单值索引 标题-记事本 文件(编辑(1)整式()查看V帮助(H) id name email weixinNumber select k from user where name create index (dx user nar 索引命名规则:idx表名_要索引的字段名 创建索引 id name email weixinNumber select x from user where name= crcatc index ldx uscr namc on uscr (namc) 上面是单个表的单个索引 如果需要SQL査询语句包含了两个字段,可以为两个字段都建立索引 也就是复合索引 文件(每E)格式(O)查香(V帮耽H d name email weixinNumber select =f from user where name and emal- create index idx user name on user(name) create index idx_user_name Email (on user(name, email) SQL执行加载顺序 手写 SQL执行顺序=机读 总结口 手写的SQL SELECT DISTINCT <se1中ct1ist left table > join type JoIN right table )oN join condition WHERE where condition x GROUP BY group by list HAVING having condition ORDER BY order by condition limiT limit number 机读 1 FR 2 oN <join condition> 3 <join type> JoIN <right table> 4 WHFRF <Where condtion> 5 GRCUP BY <group by list> o HAVING having condition> 7 SELECT 8 DISTINC <select list> 9 ORDER BY <order by condition> 0 LIMIT dimit numbers 总结 总结 笛卡尔积 不符合ON也添加 改变对表引用 DISTINCT FRCM JOIN GROUP BY SELECT LIMIT SQL解析 WHERE NAVING ORDER BY 主表俣留 只作用分后 可快用 SeLEC别 非 SELECT名 6七种JOIN理论 sQL执行顺序 Join图 询 建表SQL國 7种JIN國 」o SQLJOINS SELECT <eelect list FROM TableAA ROM TableA A LEFT JOIN TableB B RIGHT JOIN TableB B ON AKEy=B Key B ON A Key B. Key SELECT <select list> INNER JOIN TableB B ON A Key =BKey SELECT≤ select list> SELECT≤ select list FROM TableA A FROM TableA A LEFTJOIN TableB B RIGHT JOIN TableB B ON A Key=BKcy ON△.Kcy=B.Key WHERE B Key IS NULL. WHERE A Key IS NULL B SELECT <select list> SELECT <select list FROM TableA A FULL OUTER JOIN TableB E FULL OUTER JOIN TableB B ON A Key B Key WHERE SNULI ec.. Moffatt, 20 OR BKey IS NULL 分析 where b key Is nUll in图 B SELECT <select list> FROM TableA A EFTJoIN TableB B|B的key为 NL时候(A 独占 B SELECT FROM T INNER J ON AKe SELECT <select list> FROM TableA a LEFT JOIN TableB B ON AKey Bke WHERE B, Key IS NULI FULL OUTER JOIN 上 I UIN Table I KIGHI ON TableB B NA. Key=B K ON AKey=BKey HERE B, Key IS NULL WHERE A Key IS NULI B SELECT≤ select list> SELECT <select list> FROM TableA A FROM TabIeAA FULL OUTER JOIN TableB B ULL OUTER JOIN TableB B ON A Key= B Key WHERE AKey IS NULI OCL Mo' fatt Au OR B Kcy IS NULL 7. 建表 建表5QL CREATE TABLE 'tbl dept id INT(11)NOT NULL AUTO_INCREMENT deptName VARCHAR(30)DEFAULT NULL locAdd VARCHAR(40)DEFAULT NULL PRIMARY KEY (id) )ENGINE=INNODB AUTO_ INCREMENT=1 DEFAULT CHARSET=utf8 CREATE TABLE tbl_ emp( id INt(11)NOT NULL AUTO INCREMENT, name VARCHAR(20)DEFAULT NULL deptld INT(11)DEFAULT NULL PRIMARY KEY (id), KEY fk_dept id(deptld') #CONSTRAINT fk dept id FoReiGn KEY(deptld)REFERENCEs tbl dept(id) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8: 插入数据 NSERT INTO tbl dept(deptName, locAdd) VALUES(RD, 11) INSERT INTO tbl dept(deptName, locAdd) VALUES(HR, 12) INSERT INTO tbl dept(deptName, locAdd) VALUES(MK, 13): INSERT INTO tbl_dept(deptName, locAdd)VALUES(MIS, 14) INSERT INTO tbl dept(deptName, locAdd)VALUES(FD, 15) 部门表dept 对无标查询出pt481 3开始事务文本·平篇选是排序国导入导出 id deptName locAdd 1 RD 11 2HR 2 3 MK 13 A MIS 14 5 FD 15 员工表emp 对象自“无标题-查海 H tbl_dept @db0811 (localhos. H# tbl _emp @db0811(ccalhos 开始事务自文本·丫箭远目排序导入导出 name dented 4 w5 5W6 657 8s9 Inner join示例 1 sELECT FROM tbl emp a inner join tbl dept b on a deptId =bid 息 Result1兄状志 id name Heptld id/) deptName locAdd 123 1 LIRD 214 11 2 7 4 MIS left join示例 Mysql> select from tbl emp a left join tbl dept b on a. deptld b id d I name deptIdIid de t Na m lacAdd 1 123456 11 2 12 6|s7 MS b1 NULL NULI NULL right join示例 mysql> select from tbl emp a right join tbl dept b on a de pt Id =b id i d name deptId I id deptName I loc Add 123456 2|2 RRRH 2|2 12 NULL NULL NULL FD 15 左连接A表独有 id nane dep:Idid deptName Loc Add 1|23 1 RD 12|24 4|w5 2HR 15|w6 2 HR 6|s7 112234 I tMIS Isa mysql> select fron tbl_emp a left join tbl_dept b or a dent Id = b id where b id is nu de pt Name IocAdd 左连接左边独有 51 NULLNULL NULL I row in set (C,00 sec) 右连接B表独有 mysql> solec:.from tbl_omp a fight join tbl_dept b on a deptId-b id here a dopt Id is null rane dept Id idI deptName locAdd I NULL I NULLI NULL FI I row in set (0, Co sec)

...展开详情
试读 88P 尚硅谷MySQL高级_笔记
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
    最新推荐
    尚硅谷MySQL高级_笔记 42积分/C币 立即下载
    1/88
    尚硅谷MySQL高级_笔记第1页
    尚硅谷MySQL高级_笔记第2页
    尚硅谷MySQL高级_笔记第3页
    尚硅谷MySQL高级_笔记第4页
    尚硅谷MySQL高级_笔记第5页
    尚硅谷MySQL高级_笔记第6页
    尚硅谷MySQL高级_笔记第7页
    尚硅谷MySQL高级_笔记第8页
    尚硅谷MySQL高级_笔记第9页
    尚硅谷MySQL高级_笔记第10页
    尚硅谷MySQL高级_笔记第11页
    尚硅谷MySQL高级_笔记第12页
    尚硅谷MySQL高级_笔记第13页
    尚硅谷MySQL高级_笔记第14页
    尚硅谷MySQL高级_笔记第15页
    尚硅谷MySQL高级_笔记第16页
    尚硅谷MySQL高级_笔记第17页
    尚硅谷MySQL高级_笔记第18页

    试读结束, 可继续读2页

    42积分/C币 立即下载 >