当前位置: 首页 > news >正文

【MySQL】索引和视图

索引

索引定义

  • 索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。
  • 一个字段可以添加一个索引,多个字段联合起来也可以添加索引。
  • MySQL查询主要为两种方式:索引检索和全表扫描。如果条件中包含某个字段,而该字段上没有建立索引,则MySQL会将该字段的每一个值都比对一遍,效率比较低。

索引的添加和删除

  • 考虑添加索引的情况

    • 数据量庞大
    • 该字段经常作为条件,即该字段经常被扫描。
    • 该字段很少进行DML操作。
  • 建议索引添加在主键或者unique字段上。

  • 添加索引的方法:create index index_name on table_name(...field_name)

  • 删除索引的方法:drop index index_name on table_name

索引失效

  1. 模糊匹配的时候已“%”开始,例如:sdelect * from user where user_name like '% John';
  2. 使用or要求两边的条件字段都要有索引,如果其中一边没有索引,则另一边即使有索引,索引也会失效。
  3. 使用复合索引的时候,没有使用左侧的字段进行查找,索引会失效。
    • 复合索引:两个及以上的字段联合起来添加索引。
    • 最左匹配原则
    • 例子:user表中,索引建立在(id, name)上,执行语句select * from user where id = 1;会使用索引,执行语句select * from user where name = 'John';则索引失效。
  4. 在where中索引列参与了运算,索引失效。
    • 例子:假设索引建立在sal字段上,select * from user where sal = 3000;使用了索引,而select * from user where sal + 1 = 3000;索引失效。
  5. 在whhere中索引列使用了函数。
    • 例子:select * from user where lower(name) = 'smith';索引失效。
  6. 还有更多的情况会导致索引失效,这里只列举这些。

视图

视图定义

  • 站在不同的角度看待同一份数据。
  • 创建视图:create view view_name as select ...field_name from table_name。只有DQL语句才能以view的形式创建。
  • 删除视图:drop view view_name

视图的作用

  • 面向视图进行增删改查,对视图的增删改查会导致原表被操作。
  • 假设有一条复杂的SQL语句被应用在很多位置,每次使用都需要重新编写这条SQL语句,太过复杂。可以把这条SQL语句以视图对象的形式新建,在需要SQL语句的时候直接使用视图对象,大大简化开发。,同时也利于后期的维护(修改的时候只需要修改视图)。
  • 总结:方便,简化开发,利于维护。

相关文章:

  • Starlink卫星动力学系统仿真建模第七讲-卫星姿轨控系统(Attitude and Orbit Control System, AOCS)设计规范
  • 智信BI:解决Power BI全面兼容问题的新选择
  • List模拟实现
  • CellChat前沿:spaCI:通过自适应图模型破译空间蜂窝通信
  • vs构建网络安全系统 网络安全和网络搭建
  • 在群晖上使用Docker安装思源笔记
  • 【Node.js】包的结构及发布
  • 深度学习学习笔记(34周)
  • 如何评估光伏项目是否可行?需要投资多少?
  • 分类解析决策模型
  • 【从0做项目】Java音缘心动(5)———上传、播放音乐
  • springboot初始化代码
  • Power Query M函数
  • <02.22>Leetcode100
  • JVM内存模型
  • 七星棋牌顶级运营产品全开源修复版源码教程:6端支持,200+子游戏玩法,完整搭建指南(含代码解析)
  • 曾经的 “明日之星”——AI Pin 的前世今生
  • 蓝思科技赋能灵伴科技:AI眼镜产能与供应链双升级
  • 【Bluedroid】AVRCP 连接源码分析(二)
  • 基于图扑 HT 可视化技术打造智慧地下采矿可视化方案
  • 国羽3比0横扫日本晋级苏迪曼杯决赛,将战韩国与印尼胜者
  • 甘肃公布校园食品安全专项整治案例,有食堂涉腐败变质食物
  • 科普|“小石头,大麻烦”,出现输尿管结石如何应对?
  • 天启年间故宫“三殿”重修与晚明财政
  • 49:49白热化,美参议院对新关税政策产生巨大分歧
  • 山西太原一居民小区发生爆炸,应急管理部派工作组赴现场