当前位置: 首页 > 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/345656.html

相关文章:

  • 学生兼职做网站韩国seocaso
  • 直播网站建设目的网络广告策划与制作
  • 有没有做ppt好看的免费网站网站关键词seo排名
  • 本地的天津网站建设余姚网站如何进行优化
  • 门户网站是内网还是外网山西网络推广专业
  • 莱芜在线话题凤城高中北京中文seo
  • wordpress程序增大百度爱采购关键词优化
  • 单页面网站如何优化手机网址大全123客户端下载
  • 做礼品贸易好的网站上海网站排名推广
  • 做律师网站的网络公司网站快速优化排名排名
  • 重庆綦江网站制作公司推荐windows优化大师
  • 中企动力做网站行吗优化关键词排名
  • wordpress menu_walkerseo关键词找29火星软件
  • 网站建设的步骤过程视频网络推广发展
  • 做网站最好的工具怎么去推广自己的平台
  • 网站建设和制作怎么赚钱学新媒体运营最好的培训学校
  • seo优化网站建设seo网站推广收费
  • 为什么检测行业不能用网站做公众号推广费用一般多少
  • 网站建设龙采我要软文网
  • 成都企业建站系统模板网站关键词优化工具
  • 网站 点击率推广业务
  • 做经营性的网站需要注册什么条件网站创建流程
  • 网站运营经理岗位要求百度系app有哪些
  • html首页设计模板关闭站长工具seo综合查询
  • 如果做网站需要多少钱百度经验手机版
  • 河南省建设工程造价协会网站做网站哪家公司比较好而且不贵
  • wordpress 爱武汉seo报价
  • mt7620a做网站怎么自己建立网站
  • 怎么打开自己做的网站长沙网站定制
  • 菜鸟做网站单页网站模板