菜单
  

      从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。  
     1.InnoDB数据表的索引  
     与InnoDB数据表相比,在InnoDB数据表上,索引对InnoDB数据表的重要性要大得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。“数据行级锁定”的意思是指在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于)SELECT、LOCKINSHAREMODE、SELECT、FORUPDATE命令以及INSERT、UPDATE和DELETE命令。出于效率方面的考虑,InnoDB数据表的数据行级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。  
     2.限制   如果WHERE子句的查询条件里有不等号(WHEREcoloum!=),MySQL将无法使用索引。类似地,如果WHERE子句的查询条件里使用了函数(WHEREDAY(column)=),MySQL也将无法使用索引。在JOIN操作中(需要从多个数据表提取数据时),MySQL只有在主键和外键的数据类型相同时才能使用索引。  
     如果WHERE子句的查询条件里使用比较操作符LIKE和REGEXP,MySQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKE'abc%‘,MySQL将使用索引;如果查询条件是LIKE'%abc’,MySQL将不使用索引。  
     在ORDERBY操作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快ORDERBY方面也没什么作用)。如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如“0/1”或“Y/N”等值,就没有必要为它创建一个索引。
  1. 上一篇:Linux环境下CD播放器的设计与实现
  2. 下一篇:Kinect体感游戏控制器的手势检测方法研究
  1. jsp+sqlserver电影票务系统的设计与实现

  2. jsp+mysql电影推荐系统的设计与实现

  3. CC2530云服务的智能家居系统的设计

  4. asp.net+sqlserver电影院售票系统的设计与实现

  5. Android手机的一个简易商城客户端设计

  6. android手机端远程管理助手的设计+源代码

  7. android手机无线点餐系统设计

  8. 十二层带中心支撑钢结构...

  9. 酸性水汽提装置总汽提塔设计+CAD图纸

  10. 大众媒体对公共政策制定的影响

  11. 杂拟谷盗体内共生菌沃尔...

  12. 中考体育项目与体育教学合理结合的研究

  13. 河岸冲刷和泥沙淤积的监测国内外研究现状

  14. java+mysql车辆管理系统的设计+源代码

  15. 当代大学生慈善意识研究+文献综述

  16. 电站锅炉暖风器设计任务书

  17. 乳业同业并购式全产业链...

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回