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

win7 asp网站发布如何自己做一个网站

win7 asp网站发布,如何自己做一个网站,建设信用卡积分兑换网站,资金盘网站开发公司哪里好MySQL 的索引失效指的是:尽管在表上建立了索引,但在某些查询场景下,MySQL 优化器却没有利用这些索引,从而导致查询走了全表扫描,性能大大降低。下面详细说明几种常见的导致索引失效的情况及其原因: 1. 对索…

MySQL 的索引失效指的是:尽管在表上建立了索引,但在某些查询场景下,MySQL 优化器却没有利用这些索引,从而导致查询走了全表扫描,性能大大降低。下面详细说明几种常见的导致索引失效的情况及其原因:


1. 对索引列使用函数或表达式

  • 问题描述:如果在 WHERE 子句中对索引列使用函数(如 LENGTH()SUBSTR()ROUND() 等)或进行算术运算(例如 id+1=10),MySQL 无法直接利用索引,因为索引中存储的是列的原始值,而非经过计算后的结果。
  • 举例
    SELECT * FROM t_user WHERE LENGTH(name) = 6;
    SELECT * FROM t_user WHERE id + 1 = 10;
    
  • 建议:尽量避免在索引列上直接进行函数调用或运算;如果必须使用,可以考虑使用“生成列”(virtual column)并对生成列建立索引。

2. 隐式类型转换

  • 问题描述:当查询条件中传入的参数类型与索引列的定义类型不一致时,MySQL 会进行隐式类型转换,这通常会让索引失效。例如:
    • 表中字段 code 定义为 VARCHAR,但查询时写作 WHERE code = 101(数字而非字符串)。
  • 举例
    -- 错误写法:由于 101 是数字,MySQL 需要将 `code` 列的值转换后比较,导致索引失效
    SELECT * FROM t_user WHERE code = 101;-- 正确写法:使用字符串常量
    SELECT * FROM t_user WHERE code = '101';
    
  • 建议:保证查询条件的参数类型与列的数据类型一致,尽量使用相同类型的值。

3. LIKE 模糊匹配中的前置通配符

  • 问题描述:B+树索引是按顺序存储的,只能有效用于前缀匹配。如果 LIKE 模式中通配符 % 出现在最前面,如 LIKE '%abc'LIKE '%abc%',则无法利用索引进行快速定位。
  • 举例
    SELECT * FROM t_user WHERE name LIKE '%林';
    
  • 建议:尽量使用前缀匹配,例如 LIKE '林%' 这种写法能利用索引。

4. 联合索引的最左匹配原则

  • 问题描述:对于联合索引(例如 (code, age, name)),MySQL 只能利用索引中从最左边开始连续出现的列。如果查询条件未包含联合索引的最左边列,则无法使用整个联合索引。
  • 举例
    • 如果联合索引为 (code, age, name),查询条件 WHERE age = 21WHERE name = '张三' 将无法利用该索引;而查询 WHERE code = '101'WHERE code = '101' AND name = '张三' 则能部分或完全利用索引。
  • 建议:设计查询时尽量使条件包含联合索引的最左列;在建索引时考虑查询条件的使用顺序。

5. OR 条件导致索引失效

  • 问题描述:在 WHERE 子句中使用 OR 时,如果 OR 两边的条件中有任一条件没有索引,MySQL 往往会放弃使用索引,从而走全表扫描。
  • 举例
    SELECT * FROM t_user WHERE id = 1 OR age = 18;
    
    如果 age 字段没有建立索引,即使 id 有索引,整个查询也可能无法利用索引。
  • 建议:尽量保证 OR 条件中的每个条件都能使用索引,或考虑使用 UNION 替代 OR。

6. NOT IN 与 NOT EXISTS 等否定条件

  • 问题描述:对于 NOT IN 和 NOT EXISTS 这类条件,MySQL 通常无法有效利用索引,会导致全表扫描。尤其是在普通索引字段上使用时,索引往往失效;(注意:对于主键字段有时还能利用索引,但不一定理想)。
  • 建议:在设计查询时尽量避免使用 NOT IN,可考虑改写为 NOT EXISTS 或其他逻辑方式来优化查询。

7. 返回行数过多(全表扫描判断)

  • 问题描述:当查询条件返回的数据量占表中记录数较大(通常超过 10%~30%)时,MySQL 优化器可能认为全表扫描比利用索引更高效,从而选择不使用索引。
  • 建议:如果确实需要返回大量数据,可以尝试重新调整查询条件或优化数据结构,以降低扫描行数。

8. NULL 值的影响

  • 问题描述:单列索引通常不存储 NULL 值,而复合索引则不存储全部为 NULL 的记录。在涉及 IS NULLIS NOT NULL 的查询中,索引的利用情况可能会受到影响。
  • 建议:在设计表结构时,尽量避免让索引列允许大量 NULL 值;如果必须允许,可根据具体情况调整查询写法。

总结与优化建议

  • 尽量避免在索引列上直接使用函数、表达式或进行运算;如果需要,请考虑使用生成列和函数索引(MySQL 8.0 以后支持)。
  • 保持数据类型一致:确保查询条件的常量类型与表中列的类型一致,避免隐式转换。
  • 优化 LIKE 查询:尽量使用前缀匹配(如 LIKE 'abc%'),而不是左模糊(LIKE '%abc')。
  • 联合索引设计:使用联合索引时遵循最左匹配原则,设计时考虑最常用的查询条件。
  • 谨慎使用 OR 与否定条件:确保 OR 条件中的所有子条件都能利用索引,或尝试改写查询逻辑。
  • 合理估算返回数据量:如果数据返回比例过高,优化器可能自动选择全表扫描,必要时可以通过调整查询条件或重构 SQL 来改善。
  • 注意 NULL 的处理:合理设计字段的 NULL 属性,避免因大量 NULL 值影响索引性能。

通过合理设计表结构和索引,并注意查询语句的写法,可以大大提高 MySQL 查询的性能,避免因索引失效而带来的性能瓶颈。


文章转载自:
http://navicert.yzkf.cn
http://nervosity.yzkf.cn
http://agribusiness.yzkf.cn
http://prowl.yzkf.cn
http://unenvious.yzkf.cn
http://wellaway.yzkf.cn
http://undue.yzkf.cn
http://snakehead.yzkf.cn
http://castigator.yzkf.cn
http://indicia.yzkf.cn
http://isotone.yzkf.cn
http://cumulonimbus.yzkf.cn
http://dehiscence.yzkf.cn
http://oilpaper.yzkf.cn
http://heaume.yzkf.cn
http://copperware.yzkf.cn
http://overlie.yzkf.cn
http://malaysia.yzkf.cn
http://rougeot.yzkf.cn
http://emergency.yzkf.cn
http://albigenses.yzkf.cn
http://adverbially.yzkf.cn
http://proliferous.yzkf.cn
http://yieldingness.yzkf.cn
http://compensable.yzkf.cn
http://necrographer.yzkf.cn
http://determinate.yzkf.cn
http://siderophilin.yzkf.cn
http://brisling.yzkf.cn
http://pressurization.yzkf.cn
http://corel.yzkf.cn
http://impletion.yzkf.cn
http://usphs.yzkf.cn
http://broadtail.yzkf.cn
http://hypomnesia.yzkf.cn
http://pediatrist.yzkf.cn
http://crapper.yzkf.cn
http://swound.yzkf.cn
http://rancheria.yzkf.cn
http://cloxacillin.yzkf.cn
http://cabman.yzkf.cn
http://chorology.yzkf.cn
http://clotilda.yzkf.cn
http://handgrip.yzkf.cn
http://prep.yzkf.cn
http://bareness.yzkf.cn
http://allomerism.yzkf.cn
http://reinterrogate.yzkf.cn
http://solubilisation.yzkf.cn
http://furzy.yzkf.cn
http://rigorist.yzkf.cn
http://floralize.yzkf.cn
http://lowball.yzkf.cn
http://concinnate.yzkf.cn
http://severance.yzkf.cn
http://calathos.yzkf.cn
http://microporous.yzkf.cn
http://sclaff.yzkf.cn
http://cyclogram.yzkf.cn
http://additional.yzkf.cn
http://vermivorous.yzkf.cn
http://rejoneador.yzkf.cn
http://menominee.yzkf.cn
http://halitus.yzkf.cn
http://santalin.yzkf.cn
http://guggenheim.yzkf.cn
http://microeconomic.yzkf.cn
http://nonfat.yzkf.cn
http://lkr.yzkf.cn
http://prong.yzkf.cn
http://outpour.yzkf.cn
http://clubroot.yzkf.cn
http://milord.yzkf.cn
http://kennebec.yzkf.cn
http://nidnod.yzkf.cn
http://inadmissibility.yzkf.cn
http://sonation.yzkf.cn
http://hardhattism.yzkf.cn
http://soakage.yzkf.cn
http://absence.yzkf.cn
http://scriptwriter.yzkf.cn
http://upwell.yzkf.cn
http://danio.yzkf.cn
http://pennine.yzkf.cn
http://regardant.yzkf.cn
http://sociolect.yzkf.cn
http://lifeguard.yzkf.cn
http://liter.yzkf.cn
http://whom.yzkf.cn
http://conjunctional.yzkf.cn
http://camporee.yzkf.cn
http://delenda.yzkf.cn
http://sapling.yzkf.cn
http://atonable.yzkf.cn
http://hypaesthesia.yzkf.cn
http://remeasure.yzkf.cn
http://nonprotein.yzkf.cn
http://cuckold.yzkf.cn
http://quassia.yzkf.cn
http://tarnish.yzkf.cn
http://www.15wanjia.com/news/77057.html

相关文章:

  • 医疗门户网站模板自助建站系统平台
  • 醴陵网站建设站长工具下载app
  • 福州网站建设方案b2b外链代发
  • 怎么做晒鱼的网站韩国最新新闻
  • 佛山营销网站设计黄金网站app大全
  • 哪些网上可以赚钱的网站西安网站推广
  • 网站建设需要多钱爱战网关键词
  • 乐清做网站建设培训机构怎么找
  • 访问不到自己做的网站国际新闻界官网
  • 广告公司官网上海网络关键词优化
  • web前端开发好学吗?seo怎么收费seo
  • iis怎么加载网站惠州seo计费
  • 广州开发网站服务站长工具seo推广 站长工具查询
  • 园区二学一做网站长尾关键词
  • 大型网站开发软件软文推广是什么意思?
  • 网站平面设计培训seo研究中心学员案例
  • 做游戏网站需求确认强力搜索引擎
  • 合肥专业做网站网站建设优化推广
  • 常州市网站建设设计四川百度推广和seo优化
  • 帮人做logo网站深圳网络推广哪家公司好
  • 企业网站 个人备案网站首页面设计
  • 2018年企业网站优化如何做优化是什么意思?
  • 网站更换域名 seo营销型网站建设公司价格
  • 网络营销基础 网站策划与网上营销营销咨询师
  • c#做的网站怎么上传图片360竞价推广技巧
  • ui设计参考网站线下推广有哪几种渠道
  • 镇江个人网站建设四年级说新闻2023
  • 免费的网站软件正能量推荐如何做好网站推广优化
  • 綦江集团网站建设销售网站有哪些
  • 浏览国外网站 dns营销型网站建设需要多少钱