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

杭州网络公司网站百度关键词排名点

杭州网络公司网站,百度关键词排名点,有没有免费装修设计的网站,建设网站门户目录 1. 查询语句中使用LIKE关键字 例 1 2. 查询语句中使用多列索引 例 2 3. 查询语句中使用OR关键字 例 3 总结 索引可以提高查询的速度,但并不是使用带有索引的字段查询时,索引都会起作用。使用索引有几种特殊情况,在这些情况下&…

目录

1. 查询语句中使用LIKE关键字

例 1

2. 查询语句中使用多列索引

例 2

3. 查询语句中使用OR关键字

例 3

总结


索引可以提高查询的速度,但并不是使用带有索引的字段查询时,索引都会起作用。使用索引有几种特殊情况,在这些情况下,有可能使用带有索引的字段查询时,索引并没有起作用,下面重点介绍这几种特殊情况。

1. 查询语句中使用LIKE关键字

在查询语句中使用 LIKE 关键字进行查询时,如果匹配字符串的第一个字符为“%”,索引不会被使用。如果“%”不是在第一个位置,索引就会被使用。

例 1

为了便于理解,我们先查询 tb_student 表中的数据,SQL 语句和运行结果如下:

mysql> SELECT * FROM tb_student;
+----+------+------+------+
| id | name | age  | sex  |
+----+------+------+------+
|  1 | 张三 |   12 | 男   |
|  2 | 李四 |   12 | 男   |
|  3 | 王五 |   13 | 女   |
|  4 | 张四 |   13 | 女   |
|  5 | 王四 |   15 | 男   |
|  6 | 赵六 |   12 | 女   |
+----+------+------+------+
6 rows in set (0.03 sec)

下面在查询语句中使用 LIKE 关键字,且匹配的字符串中含有“%”符号,使用 EXPLAIN 分析查询情况,SQL 语句和运行结果如下:

mysql>  EXPLAIN SELECT * FROM tb_student WHERE name LIKE '%四'\G
*************************** 1. row ***************************id: 1select_type: SIMPLEtable: tb_studentpartitions: NULLtype: ALL
possible_keys: NULLkey: NULLkey_len: NULLref: NULLrows: 6filtered: 16.67Extra: Using where
1 row in set, 1 warning (0.01 sec)mysql> CREATE INDEX index_name ON tb_student(name);
Query OK, 6 rows affected (0.13 sec)mysql>  EXPLAIN SELECT * FROM tb_student WHERE name LIKE '李%'\G
*************************** 1. row ***************************id: 1select_type: SIMPLEtable: tb_studentpartitions: NULLtype: range
possible_keys: index_namekey: index_namekey_len: 77ref: NULLrows: 1filtered: 100.00Extra: Using index condition
1 row in set, 1 warning (0.00 sec)

第一个查询语句执行后,rows 参数的值为 6,表示这次查询过程中查询了 6 条记录;第二个查询语句执行后,rows 参数的值为 1,表示这次查询过程只查询 1 条记录。同样是使用 name 字段进行查询,因为第一个查询语句的 LIKE 关键字后的字符串是以“%”开头的,所以第一个查询语句没有使用索引,而第二个查询语句使用了索引 index_name。

2. 查询语句中使用多列索引

多列索引是在表的多个字段上创建一个索引,只有查询条件中使用了这些字段中的第一个字段,索引才会被使用。

例 2

在 name 和 age 两个字段上创建多列索引,并验证多列索引的使用情况,SQL 语句和运行结果如下:

mysql> CREATE INDEX index_name_age ON tb_student(name,age);
Query OK, 6 rows affected (0.11 sec)mysql> EXPLAIN SELECT * FROM tb_student WHERE name LIKE '李%'\G
*************************** 1. row ***************************id: 1select_type: SIMPLEtable: tb_studentpartitions: NULLtype: range
possible_keys: index_name_agekey: index_name_agekey_len: 77ref: NULLrows: 1filtered: 100.00Extra: Using index condition
1 row in set, 1 warning (0.05 sec)mysql> EXPLAIN SELECT * FROM tb_student WHERE age LIKE '12'\G
*************************** 1. row ***************************id: 1select_type: SIMPLEtable: tb_studentpartitions: NULLtype: ALL
possible_keys: NULLkey: NULLkey_len: NULLref: NULLrows: 6filtered: 16.67Extra: Using where
1 row in set, 1 warning (0.00 sec)

第一条查询语句的查询条件使用了 name 字段,分析结果显示 rows 参数的值为 1,且查询过程中使用了 index_name_age 索引。第二条查询语句的查询条件使用了 age 字段,结果显示 rows 参数的值为 6,且 key 参数的值为 NULL,这说明第二个查询语句没有使用索引。

因为 name 字段是多列索引的第一个字段,所以只有查询条件中使用了 name 字段才会使 index_name_age 索引起作用。

3. 查询语句中使用OR关键字

查询语句只有 OR 关键字时,如果 OR 前后的两个条件的列都是索引,那么查询中将使用索引。如果 OR 前后有一个条件的列不是索引,那么查询中将不使用索引。

例 3

下面演示 OR 关键字的使用。

mysql> EXPLAIN SELECT * FROM tb_student WHERE name='张三' or sex='男'\G
*************************** 1. row ***************************id: 1select_type: SIMPLEtable: tb_studentpartitions: NULLtype: ALL
possible_keys: index_name,index_name_agekey: NULLkey_len: NULLref: NULLrows: 6filtered: 30.56Extra: Using where
1 row in set, 1 warning (0.06 sec)
mysql> EXPLAIN SELECT * FROM tb_student WHERE name='张三' or id='12'\G
*************************** 1. row ***************************id: 1select_type: SIMPLEtable: tb_studentpartitions: NULLtype: index_merge
possible_keys: PRIMARY,index_name,index_name_agekey: index_name,PRIMARYkey_len: 77,4ref: NULLrows: 2filtered: 100.00Extra: Using union(index_name,PRIMARY); Using where
1 row in set, 1 warning (0.01 sec)

由于 sex 字段没有索引,所以第一条查询语句没有使用索引;name 字段和 id 字段都有索引,所以第二条查询语句使用了 index_name 和 PRIMARY 索引 。

总结

使用索引查询记录时,一定要注意索引的使用情况。例如,LIKE 关键字配置的字符串不能以“%”开头;使用多列索引时,查询条件必须要使用这个索引的第一个字段;使用 OR 关键字时,OR 关键字连接的所有条件都必须使用索引。

http://www.dinnco.com/news/75827.html

相关文章:

  • 北京最大的网站建设有限公司做seo必须有网站吗
  • 做网站 源码合肥正规的seo公司
  • 网页视频下载到本地太原seo关键词排名优化
  • 做网站哪里网络营销的特点有几个
  • 兰州做it网站运营的怎么样新闻热点素材
  • 广州好的做网站公司自媒体软文发布平台
  • 网站后台超链接怎么做seo是一种利用搜索引擎的
  • 用织梦做政府网站老被黑北京seo推广公司
  • 做网站建设优化的电话话术怎么在百度发布自己的文章
  • 网站空间空间租赁怎么做网站模板
  • 义乌做网站公司百度识图网页版 在线
  • 做网站公司宣传语seo综合查询站长工具
  • c2c网站建设百度输入法
  • 做网站最小的字体是多少像素外贸推广渠道有哪些
  • 潍坊科技网站建设app优化推广
  • 读书网网站建设策划书口碑营销方案怎么写
  • wordpress 超过了站点的最大上传限制环球网疫情最新
  • o2o网站源码app电商网站建设公司
  • java开发网站开发教程百度广告投放平台叫什么
  • 怎么做网站的外部连接什么是软文营销?
  • framer网页界面设计九江seo优化
  • 云网站 制作zac博客seo
  • 甘肃省交通建设项目招投标中心网站登封网站建设公司
  • 网站除了做流量还需要什么软件上海seo网络优化
  • 注册免费网站爱网站关键词查询工具
  • 网站输入一级域名自动跳转二级域名江苏网站seo
  • 《动态网站建设》第02章在线测试近10天的时事新闻
  • 淘宝客手机网站怎么做企业公司网站建设
  • 中牟网站建设免费优化网站
  • 门户网站建设工作流程小熊猫seo博客