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

广东seo网站推广成都网站建设全平台

广东seo网站推广,成都网站建设全平台,o2o网站建设怎么样,pc网站建设和推广创建索引的原则 建议创建索引的场景 select语句,频繁作为where条件的字段update/delete语句的where条件需要分组、排序的字段distinct所使用的字段字段的值有唯一性约束对于多表查询,联接字段应创建索引,且类型无比保持一致 避免隐式转换 …

创建索引的原则

建议创建索引的场景

  • select语句,频繁作为where条件的字段
  • update/delete语句的where条件
  • 需要分组、排序的字段
  • distinct所使用的字段
  • 字段的值有唯一性约束
  • 对于多表查询,联接字段应创建索引,且类型无比保持一致
    • 避免隐式转换

不建议创建索引的场景

  • where子句里用不到的字段
  • 表的记录非常少
  • 有大量重复数据,选择性低
    • 索引的选择性越高,查询效率越好,因为可以在查找时过滤更多的行
  • 频繁更新的字段,如果创建索引要考虑其索引维护开销

索引失效与解决方案

可能导致索引失效的场景:

  • 索引列不独立。独立是指:列不能是表达式的一部分,也不能是函数的参数
  • 使用了左模糊查询
  • 使用OR查询的部分字段没有索引
  • 字符串条件未使用’ ’ 引起来
  • 不符合最左前缀原则的查询
  • 索引字段建议添加NOT NULL约束
  • 隐式转换导致索引失效

索引列不独立

索引字段进行了表达式计算

explain
select *
from employees
where emp_no + 1 = 10003;

执行结果
在这里插入图片描述
从expain执行结果可以看到并未用到索引,解决方案,事先在代码中计算好表达式的值,再传入SQL中,应该避免在SQL语句的where条件子句等号左侧做计算。

explain
select *
from employees
where emp_no = 10002;

修改之后的执行结果
在这里插入图片描述

索引字段是函数的参数

explain
select *
from employees
where SUBSTRING(first_name,1,3) = 'GEO';

执行结果
在这里插入图片描述
该语句并没有用到索引,解决方案,同样先行计算好结果再传入,在where子句左侧不要使用函数;或者使用等价的SQL去实现。

explain
select *
from employees
where first_name like 'GEO%';

执行结果
在这里插入图片描述

使用左模糊

explain
select *
from employees
where first_name like '%GEO';

执行结果
在这里插入图片描述
解决方案,在进行模糊查询时应尽量避免使用左模糊查询,如果无法避免,且在有必要的情况下可以考虑使用搜索引擎来解决。

使用OR查询的部分字段没有索引

explain
select *
from employees
where first_name = 'Georgi'
or last_name = 'Georgi';

执行结果
在这里插入图片描述
解决方案,分别为条件中的字段创建索引。

create index employees_last_name_index on employees (last_name);

再次执行expain结果
在这里插入图片描述

字符串条件未使用单引号引起来

explain
select *
from dept_emp
where dept_no = 3;

执行结果
在这里插入图片描述
解决方案,在编写SQL语句的时候,要规范,对于字符串的条件要用单引号引起来。

explain
select *
from dept_emp
where dept_no = '3';

执行结果
在这里插入图片描述

不符合最左前缀原则的查询

存在index(last_name,first_name)

explain
select *
from employees
where first_name = 'Facello';

执行结果
在这里插入图片描述
解决方案,调整索引的顺序,使其变为index(first_name,last_name)或创建first_name的单独索引。
在这里插入图片描述
调整顺序后执行结果
在这里插入图片描述

索引字段建议添加NOT NULL约束

单列索引无法存储null值,复合索引无法存储全为null的值。查询时采用is null条件时,不能利用到索引,只能全表扫描。且,MySQL官方建议尽量把字段定义为NOT NULL。

这种情况不做演示,解决方案很简单,在建表时把索引字段设置为NOT NULL,根据官方建议,甚至可以把所有的字段都设置成NOT NULL并为字段赋默认值。

隐式转换导致索引失效

当联表查询时,如果作为联接条件的两个字段的类型不一致,则会进行隐式转换,也会导致索引失效,所以在创建表时要进行充分的考虑,使两个字段的类型保持一致。

http://www.yayakq.cn/news/174243/

相关文章:

  • 国外做设计赚钱的网站django网站开发视频教程下载
  • 建设国家地质公园网站主要功能0建设营销型网站步骤介绍
  • 镇江网站建设推广查询网站备案密码是什么情况
  • 厦门网站建设公司网站后台中文模板
  • 成武菏泽网站建设百度有没有做游戏下载网站吗
  • 德阳网站建设熊掌号编程软件python下载
  • 建立网站要钱吗昆明的互联网公司有哪些
  • ftp网站备份在线培训系统软件
  • 站长工具seo综合查询下载安装短网址生成平台
  • ii6创建网站教育行业手机wap网站
  • 做网站和网页有区别吗电话销售的10个小技巧
  • 做网站上的在线支付怎么做万商天勤律师事务所
  • 一件代发48个货源网站杭州高瑞网站建设
  • 做的网站如何投入搜索引擎标准网站建设报价单
  • 国外的外贸网站微信软文怎么写
  • 广西建设工程造价管理协会网站网络服务器建设
  • 网站关键词优化难不难项目之家app
  • 网站年龄和域名年龄网站logo设计标准
  • 怎么提高网站关键词排名app推广渠道有哪些
  • 经济型网站建设windows 2008 wordpress
  • 网站开发运行环境做的好看的国内网站欣赏
  • 网站建设ui设计单位网站建设申请
  • 广州公司网站设计望牛墩仿做网站
  • 包装设计网站有哪些免费开源商城系统源码
  • 网上书城网站开发的目的与意邵阳网站建设上科互联
  • 做跨境电商网站的意义网站开发ceil(5.5)
  • 青岛住房和城乡建设 网站微信免费小程序开发平台
  • 企业网站的建设公司vue 做企业网站
  • 江门微信网站建设重庆建设网站哪家好
  • 网站建设基本流程详细说明网站建设 昆明 价格