月19日sql进阶使用瑞客论坛_第1页
月19日sql进阶使用瑞客论坛_第2页
月19日sql进阶使用瑞客论坛_第3页
月19日sql进阶使用瑞客论坛_第4页
月19日sql进阶使用瑞客论坛_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一些进阶功能索引Index视图View触发器Triggers,事件Events事务Transaction基本权限管理索引所谓索引就是为特定的mysql字段进行一些特定的算法排序,来快速查找没有索引的话,MySQL表查询需要从第一个记录开始扫描全表找到需要的记录集。大多数PRIMARY

KEY,UNIQUE,INDEX,and

FULLTEXT使用B-Tree空间数据类型使用R-trees内存表可以使用使用hash

indexes平和二叉树Left

<

Root

<

RightB树索引类型主键索引PRIMARY

KEY唯一索引UNIQUE普通索引INDEX函数索引前缀索引,足够长,不能太长组合索引全文索引FULLTEXT空间索引约束详解Primary

KEY型的AUTO_INCREMENT用尽量小的满足需求的数据类型记住了!不跨系统!若是自增长或者其他表中值不能重复,一个表只能有一个主键非空(不能赋值为null)主键也是索引,唯一性索引常见主键自增IDUUID自定义序列整数通常很快且可以使用AUTO_INCREAMENT,应该避免使用字符串类型作为标识列复合主键,AUTO那个必须放在最左边分库分表布式架构直接套用自增id做主键小规模分布式架构用uuid或者自增id+步长做主键大规模分布式架构用自建的id 做主键Foreign

KeyInnoDB父表不能是临时表指向必须类型相同表(子表)的列会生成索引指向任意索引列,若是组合索引那么被指向的索引必须是按组合索引的顺序不支持指向前缀索引,所以不能指向TEXT和BLOB数据类型的列index_name

数据库里是唯一的可以指向非唯一的索引不能指向虚拟生成列指向 生成列的话,不能使用ON

UPDATE

CASCADE,

ON

DELETE

SET

NULL,

ON

UPDATE

SET

NULL,

ON

DELETE

SET

DEFAULT,

or

ON

UPDATESET

DEFAULThttdefinitions/doc/refman/8.0/en/innodb-foreign-key-constraints.html#innodb-foreign-key-UNIQUE/INDEXCREATE

vs

ALTER

TABLECREATE

INDEX必须提供索引名,对于ALTER

TABLE,将会自动创建,如果你不提供CREATE

INDEX一个语句一次只能建立一个索引,ALTER

TABLE可以在一个语句建立多个只有ALTER

TABLE才能创建主键普通索引前缀索引SELECT

COUNT(DISTINCT

index_column)/COUNT(*)

FROMtable_name;函数索引MySQL

8.0.13+组合索引可以组合函数索引和非函数索引ASC和DESC在函数索引部分是支持的降序索引MySQL

8如果一个查询,需要对多个列进行排序,且顺序要求不一致,要想避免数据库额外的排序,只能使用降序索引。以前排序是会有性能惩罚的fileorderUNIQUE索引被定义为索引的列所有值必须唯一但允许有空值使用索引的一些建议索引过多时,会影响系统的性能,在CUD操作较多的数据表上避免过多地建立索引增加 空间降低更新表中数据的速度维度高的列创建索引,数据列中不重复值出现的个数,这个数量越高,维度就越高,如数据表中存在8行数据a,b

,c,d,a,b,c,d这个表的维度为4对较小的数据列使用索引查询表达式中经常使用、有较多不同值的字段上建立索引,也就是经by,order

by

中出现的列使用索引常where,on,group使用组合索引避免将索引列作为表达式的一部分CHAR或VARCHAR列的字符数很多,则可视具体情况对索引列的前缀建立索引EXPLAINNULLALL

index range

ref

eq_ref const,

systemALL:全表扫描index:索引全扫描range:索引范围扫描ref:使用非唯一索引扫描eq_ref:使用唯一索引扫描const,system:单表中最多只有一个匹配行EXPLAINOutputColumnsSelecttypeselect_typesimple简单select(不使用union或子查询)primary最外面的selectunion

union中的第二个或后面的select语句dependent

union

union中的第二个或后面的select语句,取决于外面的查询union

result

union的结果。subquery子查询中的第一个selectdependent

subquery子查询中的第一个select,取决于外面的查询derived导出表的select(from子句的子查询)视图视图就是一个虚拟表格视图的特点视图的表格定义在创建的时候被定格,本身并不包含数据。作为一个select语句保存在数据字典中的。基表:用来创建视图的表叫做基表basetableSelect语句from中不能有subquerySelect不能使用变量程序中select不能中不能含有参数和局部变量视图是基于其他表格创建的,该表格必须存在,在创建视图后删除的话,

视图会出错视图名后面的列的数量必须匹配select子句中的列的数量。执行策略语句进行合并, 然后执行合并后的语MERGE将输入的查询语句和视图的句并返回TEMPTABLE先基于视图的 创建一张tem

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论