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

免费建设网站平台/线上网络平台推广

免费建设网站平台,线上网络平台推广,北京市石景山区住房和城乡建设委员会网站,东莞网站关键词优化收费数据库之索引优化 索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题。 环境准备 create table tb_seller (sellerid varchar (100),name varchar (100),nickname varchar (50),password varchar (60),status varchar (…

数据库之索引优化

索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题。
环境准备

create table `tb_seller` (`sellerid` varchar (100),`name` varchar (100),`nickname` varchar (50),`password` varchar (60),`status` varchar (1),`address` varchar (100),`createtime` datetime,primary key(`sellerid`)
)engine=innodb default charset=utf8mb4; insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('alibaba','阿里巴巴','阿里小店','e10adc3949ba59abbe56e057f20f883e','1','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('baidu','百度科技有限公司','百度小店','e10adc3949ba59abbe56e057f20f883e','1','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('huawei','华为科技有限公司','华为小店','e10adc3949ba59abbe56e057f20f883e','0','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('itcast','传智播客教育科技有限公司','传智播客','e10adc3949ba59abbe56e057f20f883e','1','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('itheima','黑马程序员','黑马程序员','e10adc3949ba59abbe56e057f20f883e','0','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('luoji','罗技科技有限公司','罗技小店','e10adc3949ba59abbe56e057f20f883e','1','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('oppo','OPPO科技有限公司','OPPO官方旗舰店','e10adc3949ba59abbe56e057f20f883e','0','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('ourpalm','掌趣科技股份有限公司','掌趣小店','e10adc3949ba59abbe56e057f20f883e','1','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('qiandu','千度科技','千度小店','e10adc3949ba59abbe56e057f20f883e','2','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('sina','新浪科技有限公司','新浪官方旗舰店','e10adc3949ba59abbe56e057f20f883e','1','北京市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('xiaomi','小米科技','小米官方旗舰店','e10adc3949ba59abbe56e057f20f883e','1','西安市','2088-01-01 12:00:00');
insert into `tb_seller` (`sellerid`, `name`, `nickname`, `password`, `status`, `address`, `createtime`) values('yijia','宜家家居','宜家家居旗舰店','e10adc3949ba59abbe56e057f20f883e','1','北京市','2088-01-01 12:00:00');create index idx_seller_name_sta_addr on tb_seller(name,status,address);

3.1 避免索引失效

1).全值匹配,对索引中所有的列都指定具体的值。
改情况下,索引生效,执行效率越高


2) 最左前缀法则,如果索引多个列,要遵循最左前缀法则,指的是查询从索引最左前列开始,并且中间不跳过索引中的列;

ABC
单独查a走索引
查ab 走索引
查abc 走索引
顺序打乱 cba 走索引
bc 不走索引
ac a走索引 c不走索引。

a 走索引

ab走索引

abc 走索引

cba 顺序打乱 依然走索引

索引失效的案例

  1. 违法最左前缀法则, 索引失效:

b 不走索引

bc 不走索引

ac 只有a走索引 c不走索引

2). 范围查询,右边的列索引不会走。

原因:mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配

根据前面的两个字段name , status 查询是走索引的, 但是最后一个条件address 没有用到索引。

  1. 不要在索引列上进行运算操作,索引将会失效
  2. 字符串不加单引号,造成索引失效。

a不加单引号 ab 都不走索引 b不加单引号, a走b不走

原因:由于,在查询是,没有对字符串加单引号,MySQL的查询优化器,会自动的进行类型转换,造成索引失效。

5)尽量避免select * 因为这如果有索引, 需要进行回表查询

TIP : using index :使用覆盖索引的时候就会出现using where:在查找使用索引的情况下,需要回表去查询所需的数据using index condition:查找使用了索引,但是需要回表查询数据using index ; using where:查找使用了索引,但是需要的数据都在索引列中能找到,所以不需要回表查询数据

注意 重点: using index condition代表查询条件中虽然出现了索引列,但是有部分条件无法使用索引,会根据能用索引的条件先搜索一遍再匹配无法使用索引的条件。


网上的声音也是层出不穷, 本人亲测 的是 using index condition 是索引失效了,才会出现的。

  1. 用or 分割开的条件,如果or 前的条件中的列有索引,而后面的列中没有索引,那么涉及都不会被用到。

    不管or 前后有没有索引,都会造成索引失效;

  2. 以%开头的Like 模糊查询,索引失效。
    如果仅仅是尾部模糊匹配,索引不会失效。如果是头部模糊匹配,索引失效。

解决方法: 覆盖索引,也就是查询的列都是索引中的即可

8)如果MySQL评估使用索引比全表更慢,则不使用索引。

  1. is NULL , is NOT NULL 有时索引失效。

10). in 走索引, not in 索引失效。

http://www.jmfq.cn/news/4923217.html

相关文章:

  • wordpress 不显示主题/seoul是韩国哪个城市
  • 购买完域名后怎么做网站/东莞做网站哪家好
  • 个人网站怎么做代码/排名网站
  • 长沙最好网站建设/曼联vs恩波利比分
  • 游戏推广应该怎么推/北京seo网站推广
  • 洛阳有哪些做网站的公司/网络营销的4p策略
  • 优酷的网站头怎么做的/淘客推广怎么做
  • 软件设计师中级/长沙seo网站管理
  • 东莞做网站多少钱/北京seo服务商找行者seo
  • 网站制作的内容包含/亚马逊跨境电商
  • 嘉兴做网站的公司有哪些/360投放广告怎么收费
  • 做财务需要关注哪些网站/关键词林俊杰的寓意
  • 做牙的网站叫什么/武汉seo报价
  • 学生个人网页设计主题/系统优化的意义
  • 机加工如何用网站开发客户/微信crm客户管理系统
  • 网站建设亇金手指专业/宝鸡网站开发公司
  • 海口建设工程信息网站/搜索竞价托管
  • 潍坊市网站建设公司/北京百度seo
  • 二维码创意设计/被公司优化掉是什么意思
  • 网站建设项目的工作分解/seo软件推广
  • vps 网站发布/长沙建站seo公司
  • 如何对网站进行推广/新闻稿件代发平台
  • 济南网站开发企业/如何进行关键词分析
  • 沧州哪里可以做网站/免费域名注册永久
  • 湖南人文科技学院宿舍/网站优化策略分析论文
  • wordpress生成站点地图/东莞网站建设最牛
  • 电商商城网站建设方案/培训机构哪家好
  • ydblog wordpress/惠州seo排名收费
  • 安丘网站建设报价/电脑优化软件
  • 专门做批发的网站吗/企业查询信息平台