![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库MySQL
文章平均质量分 65
四月天行健
这个作者很懒,什么都没留下…
展开
-
【数据库MySQL】-- 触发器
触发器是与表有关的数据库对象,指再insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合,触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的,现在触发器只支持行级触发,不支持语句级触发。触发器类型 NEW和OLD insert型触发器 NEW表示将要或者已经新增的数据 update型触发器 OLD表示修改之前的数据,NEW表示将原创 2022-05-09 09:52:10 · 143 阅读 · 0 评论 -
【数据库MySQL】-- 索引(四)(优化索引:覆盖索引、前缀索引、单列联合索引、设计原则)
一、覆盖索引尽量使用覆盖索引(查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到,查询的字段都为聚集索引或二级索引),减少select *的使用,因为可能会回表查询。执行计划中的extra:using index condition:查找使用了索引,但是需要回表查询数据using where;using index:查找使用了索引,但是需要的数据都在索引列中找到,所以不需要回表查询数据。例:id为聚集索引,name为二级索引(辅助索引)第一条语句不需要回表查询第二条需要原创 2022-05-04 17:42:40 · 635 阅读 · 0 评论 -
【数据库MySQL】-- 索引(三)(最左前缀法则、索引失效情况、SQL提示)
一、最左前缀法则如果索引了多列(联合索引),要遵循最左前缀法则,最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将部分失效(后面的字段索引失效)。例:第一个语句可以索引。第二个语句不能索引,因为profession最左侧的索引被跳过,后面的不能索引。第三个语句部分索引,只有profession可以索引,status不能。explain select * from tb_user where profession='软件工程' and age原创 2022-05-03 21:36:14 · 1375 阅读 · 0 评论 -
【数据库MySQL】-- 视图的作用和使用
首先介绍一下什么是视图?视图(view)是一种虚拟存在的表,视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在 创建这条SQL查询语句上。视图的作用:1、简单:视图不仅可以简化用户对数据的理解,也可以简化他们的操作,那些被经常使用的查询可被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。2、安全:数据库可以授权,但不能授权到原创 2022-05-02 09:41:00 · 4748 阅读 · 1 评论 -
【数据库MySQL】-- 索引(二)(执行频率、慢查询、explain)
一、查看操作的执行频率show [session|global] status 可以提供服务器状态信息show global status like 'Com_______' 可以查看增删改查等操作的访问频次二、慢查询日志什么是慢查询日志?当已经查看到待优化的操作,却不知优化哪个操作语句时,可以用慢查询日志。慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志...原创 2022-05-01 22:01:11 · 372 阅读 · 0 评论 -
【数据库MySQL】-- 索引(一)(索引概述、索引创建)
概述引入:为什么要使用索引?为了提高查找的效率,例如:在找一个年龄为10岁的人时,会进行全表扫描,即使找到了,也会全部扫描一遍。这样显然会使查询效率大大降低,此时引入索引的概念。索引既有优势也会有劣势: 优势 劣势 提高数据检索的效率,降低数据库的IO成本 索引列需要占用空间 通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗 索引大大提高了查询效率,同时却也降低更新表的速度,如对表进行INSERT、UPDATE、DELETE时原创 2022-04-28 20:47:30 · 1502 阅读 · 0 评论 -
【数据库MySQL】-- 基础操作指令(DDL、DML、DQL、约束、多表查询、事务、存储引擎)
启动数据库:net start mysqlMYSQL自带进入数据库:mysql -u root -pwindows命令行进入数据库:mysql -h localhost -P3306 -u root -p创建用户:create user 用户名 identified by 密码授予查询权限:grant select on 表名 to 用户一、DDL(数据定义语言)1、DDL-数据库操作show databases; ...原创 2022-04-28 19:32:55 · 779 阅读 · 0 评论