有些 where 条件会导致索引无效

2018-11-26 17:03:59

在查询中,WHERE 条件也是一个比较重要的因素,尽量少并且是合理的 where
条件是徆重要的,尽量在多个条件的时候,把会提取尽量少数据量的条件放在前
面,减少后一个 where 条件的查询时间。
有些 where 条件会导致索引无效:
 1.where 子句的查询条件里有!=,MySQL 将无法使用索引。


 2.where 子句使用了 Mysql 函数的时候,索引将无效,比如:select * from tb
where left(name, 4) = 'xxx'


 3.使用 LIKE 迕行搜索匹配的时候,返样索引是有效的:select * from tbl1
where name like 'xxx%',而 like '%xxx%' 时索引无效

  4.不匹配的数据类型 char 搜索的时候  where name=你好  应该用 where name='你好'  如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引

    5.在Where子句中使用IS NULL或者IS NOT NULL。

    6.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)

 

 

 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引    必须是独立索引

  • 2018-10-27 16:36:09

    关于 android 中 postDelayed方法的讲解

    当然,你也可以做一个闹钟提醒延时的函数试试,比如,先用MediaPlayer播放闹钟声音, 如果不想起,被停止播放之后,下次就5分钟后再播放,再被停止的话,下次就4分钟后播放,

  • 2018-10-27 17:24:45

    使用localstorage和预加载做到webview秒开

    提到网页加载速度优化,大家都会想到静态资源上CDN,CSS和JS文件合并,图片合并成雪碧图等常用手段;但是在某些特殊情况下这些常用方法也无法达到理想的效果。比如,在国际化场景下,很多国家还停留在2G网络阶段,无论如何优化,都无法避免过慢的网络请求。最近一直在做国际化(主要是印尼和泰国)背景下的webview性能优化,也算有一些经验。由于我们的产品是面向android用户的,而android手机对H5支持很好,因此我们主要是应用H5的新特性。

  • 2018-10-28 10:50:26

    VectorDrawable简单介绍

    在项目中使用矢量图至少可以缩小我们apk包的尺寸,而且可以在屏幕适配时提供很大的方便,因为矢量图是分辨率无关的。

  • 2018-10-28 11:14:29

    矢量资源工具Vector_Asset_Studio

    Android Studio有一个称为“Vector Asset Studio”的工具, 它可以将SVG文件和PSD文件转化为工程可用的矢量可绘制资源(vector drawable resources),

  • 2018-10-28 11:16:09

    Android vector标签 PathData 画图超详解

    SVG是一种矢量图格式,是Scalable Vector Graphics三个单词的首字母缩写。在xml文件中的标签是<vector>,画出的图形可以像一般的图片资源使用,例子如下

  • 2018-10-30 00:16:41

    android ToolBar 设置颜色

    app:popupTheme——有时候我们有需求:ActionBar文字是白的,ActionBar Overflow弹出的是白底黑字让ActionBar文字是白的,那么对应的theme肯定是Dark。可是让ActionBar弹出的是白底黑字,那么需要Light主题。这时候popupTheme就派上用场了。android:theme 与app:theme——在AppCompat v21里,提供了一个快速方便的方法设置Toolbar的主题,使用app:theme。而新版本22.1.x中,AppCompat 允许对 Toolbar 使用 android:theme代替 app:theme。最好的一点是:它会自动继承父视图的theme ,并且兼容所有APIv11以上的设备。