MySQL教程之MySQL一些中重要命令
发布时间:2022-08-10 10:34:29 所属栏目:MySql教程 来源:互联网
导读:前言: 最近在面试的过程中,深感对MySQL一些重要命令的缺失。借着这个机会,补补这块的知识。不让自己只会增删查改,懂一些高级的东西 limit 用法 order by 用法 in 和 between的用法 join的用法 (一)limit用法 我们看下面的代码: 1 select id, name fro
|
前言: 最近在面试的过程中,深感对MySQL一些重要命令的缺失。借着这个机会,补补这块的知识。不让自己只会增删查改,懂一些高级的东西 limit 用法 order by 用法 in 和 between的用法 join的用法 (一)limit用法 我们看下面的代码: 1 select id, name from table limit 5, 10 一个简单的limit命令,limit m, n 代表从m+1个开始取n行数据,输出 上面也就是从第六行开始,输出10行。也就是输出6-15行 假设我们有如下表: 数据大概为100W条数据。 执行如下命令: 1 select * from BookIndex limit 10, 10; 用了0s,并且没有用索引。 在执行如下命令: 1 select * from BookIndex limit 1000000, 10; 同样十条数据,却用了0.31秒。同样是全盘扫描。 下面我用索引优化: 用了0.17秒。 0.31/0.17 大概快了两倍左右吧。 下面再次优化: 0.00s,可以说快的不知一点两点的。 记得用limit一定要用索引,并且如果m(偏移量)过大,先用where筛选一波数据出来在处理。 (二)order by用法 oder by 很是简单,而且是默认用了range索引。 默认升序,可以加上desc变为降序。 (三)in 和 between的用法 我们可以从explain看出,不管是in还是between都是用了索引。 而且between有一个强大的功能,和limit进行比较的时候。当偏移量较大,但取的数据量较小的时候,用between最为合适 看一下的实验 直接0.00s搞定,一点都不含糊。 (四)join的用法 JOIN: 如果表中有至少一个匹配,则返回行 LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN: 只要其中一个表中存在匹配,就返回行 "Persons" 表: Id_P LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing "Orders" 表: Id_O OrderNo Id_P 1 77895 3 2 44678 3 3 22456 1 4 24562 1 5 34764 65 inner join: LastName FirstName OrderNo Adams John 22456 Adams John 24562 Carter Thomas 77895 Carter Thomas 44678 (编辑:衢州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


