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

乡镇府建设网站网站没有友情链接

乡镇府建设网站,网站没有友情链接,网站颜色搭配网站,项目立项流程图关键原因分析 索引选择性问题 如果 order_id 没有索引,即使 insert_time 有索引,优化器可能认为先通过 order_id 过滤数据更高效。但由于 order_id 无索引,只能全表扫描后过滤。即使 insert_time 有索引,如果满足 insert_time >…

关键原因分析

  1. 索引选择性问题

    • 如果 order_id 没有索引,即使 insert_time 有索引,优化器可能认为先通过 order_id 过滤数据更高效。但由于 order_id 无索引,只能全表扫描后过滤。
    • 即使 insert_time 有索引,如果满足 insert_time >= '2024-02-26' 的数据量很大(如超过表总行数的 20%),优化器会认为全表扫描比回表更高效
  2. 缺乏复合索引
    单列索引 insert_time 仅能加速时间范围过滤,但无法同时优化 order_id 的等值查询。若 order_id 的过滤性(选择性)高,优化器更倾向于使用复合索引 (order_id, insert_time)

  3. 统计信息不准确
    表的统计信息(如索引基数)过期,导致优化器误判索引效果。可通过 ANALYZE TABLE tb_oc_order; 更新统计信息。

  4. 隐式类型转换或函数调用
    如果 transaction_id 的字符集或排序规则与查询值不匹配,可能导致隐式转换,从而无法使用索引(需检查表结构)。


解决方案

  1. transaction_id 添加索引
    如果 transaction_id 选择性高(如唯一或接近唯一),优先为其单独创建索引:

    ALTER TABLE tb_oc_order ADD INDEX idx_transaction_id (transaction_id);
    
  2. 创建复合索引
    联合索引 (transaction_id, insert_time) 可以同时优化两个条件:

    ALTER TABLE tb_oc_order ADD INDEX idx_trans_insert (transaction_id, insert_time);
    
    • 优势:先通过 transaction_id 快速定位少量行,再按 insert_time 过滤,效率更高。
  3. 强制使用索引(谨慎使用)
    通过 FORCE INDEX 提示强制使用 insert_time 索引(需确保其确实更优):

    EXPLAIN SELECT * FROM tb_oc_order FORCE INDEX (insert_time_index_name)
    WHERE transaction_id = '202502260333525000251000008' AND insert_time >= '2024-02-26 09:23:15';
    
  4. 检查数据分布
    执行以下查询,确认满足条件的数据比例:

    -- 满足 insert_time 条件的数据占比
    SELECT COUNT(*) / (SELECT COUNT(*) FROM tb_oc_order) AS ratio
    FROM tb_oc_order
    WHERE insert_time >= '2024-02-26 09:23:15';-- 满足 transaction_id 条件的数据行数
    SELECT COUNT(*) FROM tb_oc_order WHERE transaction_id = '202502260333525000251000008';
    
    • 如果 transaction_id 匹配行数极少(如 1 行),但 insert_time 范围覆盖大部分表,优化器可能优先全表扫描。

优化后的执行计划

创建复合索引后,执行计划应类似以下结果(使用索引范围扫描):

+----+-------------+-------------+------+---------------------+---------------------+---------+-------+------+-----------------------+
| id | select_type | table       | type | key                 | key_len             | ref     | rows  | Extra                 |
+----+-------------+-------------+------+---------------------+---------------------+---------+-------+------+-----------------------+
| 1  | SIMPLE      | tb_oc_order | ref  | idx_trans_insert    | 772 (transaction_id)| const   | 1     | Using index condition |
+----+-------------+-------------+------+---------------------+---------------------+---------+-------+------+-----------------------+

http://www.dtcms.com/wzjs/18338.html

相关文章:

  • 如何做阅读网站唐山seo排名
  • 怎么在互联网做网站新冠不易感染三种人
  • 提供温州手机网站制作哪家好买域名
  • 群辉做网站百度seo关键词优化公司
  • 做产品批发的网站有哪些apple私人免费网站怎么下载
  • 做外汇需要关注的新闻网站seo的含义是什么意思
  • 建站公司哪家好 知道万维科技低价刷赞网站推广
  • 上海加盟网网站建设信息流推广的竞价机制是
  • 厦门网站制作开发收费无限制访问国外的浏览器
  • 什么网站可以做推广的百度竞价价格
  • 建设银行网站www.ccb.com深圳网络推广seo软件
  • wordpress获取部分分类西安seo网站排名
  • 免费做推广的网站有哪些企业管理系统
  • 做卖车的网站有哪些站长工具站长之家官网
  • 如何做新闻网站本周新闻热点10条
  • 香港做网站公司seo网站
  • 用vue做网站合肥网站外包
  • 自己的域名可以转给做网站的账号吗品牌广告和效果广告
  • wordpress站点改名网站推广优化
  • 坪山网站建设设计百度推广关键词质量度
  • 大连学网站制作珠海网站设计
  • 网站建设背景图片推广神器app
  • 高碑店网站建设价格企点下载
  • h5网站显示的图标怎么做的百度seo关键词排名优化
  • 北京网站优化对策百度灰色关键词排名代做
  • 长春市网站制作一键搭建网站工具
  • 湖南省水运建设投资集团网站广州疫情最新消息今天封城了
  • 找做仿网站教育培训网站大全
  • 网站的设计方案在哪里seo排名软件
  • wordpress 阅读量seo教程视频