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

博山网站建设响应式旅行社展业网站开发调研报告

博山网站建设,响应式旅行社展业网站开发调研报告,个人网站设计成首页,基于android的app开发用什么软件背景 对mysql的联合索引的考察是Java程序员面试高频考点!必须深刻理解掌握否则容易丢分非常可惜。 技术难点 考察对最左侧匹配原理理解。 原理 暂且不表。网上讲这非常多。我理解就是,B树每个非叶子节点的值都是有序存放索引的值。 比如对A、B、C …

背景

对mysql的联合索引的考察是Java程序员面试高频考点!必须深刻理解掌握否则容易丢分非常可惜。

技术难点

考察对最左侧匹配原理理解。

原理

暂且不表。网上讲这非常多。我理解就是,B+树每个非叶子节点的值都是有序存放索引的值。

比如对A、B、C 三个字段做联合索引。B+输每个节点都存储A、B、C的值。首先保证A有序其次保证B有序。

重点看实战。

实战

我们做一次实战记录,避免下次面试再次犯错。

环境

mysql版本 5.7.38-log

建表语句

CREATE TABLE `user_cart_item` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',`user_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',`goods_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '商品id',`goods_sku_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '商品id 有skuid的话为什么要存商品id',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '物品篮项目创建时间',`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '物品篮项目更新时间',`sku_price` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '价格',PRIMARY KEY (`id`) USING BTREE,KEY `idx_user_cart_item` (`user_id`,`goods_id`,`goods_sku_id`) USING BTREE
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='物品篮项';

视代码可见我们创建一个联合索引 idx_user_cart_item

查询

 查询条件是user_id、goods_id、goods_sku_id,一定能匹配上索引没问题

EXPLAIN SELECTuser_id,goods_id, goods_sku_id,sku_price
FROMuser_cart_item 
WHEREuser_id=248 and goods_id = 1 and goods_sku_id = 1

结果如下: 

 查询条件是user_id、goods_id,一定能匹配上索引没问题

EXPLAIN SELECTuser_id,goods_id, goods_sku_id,sku_price
FROMuser_cart_item 
WHEREuser_id=248 and goods_id = 1 

结果如下:

 查询条件是user_id,一定能匹配上索引没问题

EXPLAIN SELECTuser_id,goods_id, goods_sku_id,sku_price
FROMuser_cart_item 
WHEREuser_id=248 

结果如下:

查询条件是user_id,goods_sku_id ,按最左侧匹配原则也是能使用索引

EXPLAIN SELECTuser_id,goods_id, goods_sku_id,sku_price
FROMuser_cart_item 
WHEREuser_id=248 and goods_sku_id = 1 

 结果如下:

查询条件是goods_sku_id 看能否使用索引

EXPLAIN SELECTuser_id,goods_id, goods_sku_id,sku_price
FROMuser_cart_item 
WHEREgoods_sku_id = 1 

结果如下:

重点

不满足最左侧匹配是不能使用联合索引的。

特殊情况不满足最左侧匹配也能使用联合索引

EXPLAIN SELECTuser_id,goods_id, goods_sku_id
FROMuser_cart_item 
WHEREgoods_sku_id = 1 

结果如下:

索引类型不是ref,而是index。是在索引范围内查找。甚过All 全表扫描

重点

当联合索引能覆盖查询字段(覆盖索引)。但查询条件并不满足最左侧匹配原则。mysql查询优化器也推荐我们使用联合索引。但索引是index。 也就是索引内查找。

http://www.hyszgw.com/news/56944/

相关文章:

  • python网站开发好吗东莞市网络seo推广价格
  • 论文收录网站有哪些重庆工程建设信息网官网查询
  • 网站建设网络推广最低价格微网站开发+在线商城
  • 苏州企业网站建设公司重庆营销网站建设公司
  • 网站设计是怎么做的网站建设个人职责
  • 制造业网站开发济南建设工程备案网站
  • 搜款网站一起做网店网站做301有什么用
  • 陕西网站建设推广公司苏州建网站哪家
  • win7如何安装iis来浏览asp网站长沙市网站开发
  • 大连网站建设与维护题库个人网站域名
  • 零基础网站建设教学视频推特登陆 网站建设
  • 功能型网站多少钱丰台怎样做网站
  • 衡水提供网站制作公司报价wordpress 插件表
  • 棋牌网站建设多少钱做团购的家居网站有哪些
  • 手机网站规划长沙长沙h5网站建设
  • 做网站广告公司联系方式比较出名的网站域名
  • 陕西建设工程合同备案网站如何写销售计划书方案
  • 做网站加入广告联盟镇江百度送网站
  • 宁波怎么建网站模板站游戏开发专业
  • 网站分享的功能怎么做网站设计个人心得
  • 建设网站地图重庆有的设计网站
  • 海南网站建设费用企业门户网站管理要求
  • 绵阳网站推广优化金湖县网站建设
  • 凡科网站免费版南宁比优建站
  • 怎样登陆网站后台wordpress链接设置
  • 酒店网站如何做西安网站建设麦欧科技
  • 小程序网站开发太原石家庄菜谱设计公司
  • wordpress做出影视网站建设银行金山支行网站
  • 网站建设源程序代码山东建筑公司排名
  • 腾讯云服务器怎么做网站专业苏州网站建设公司排名