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

wordpress 更新服务汕头seo不错

wordpress 更新服务,汕头seo不错,黑山网站制作公司,沈阳网站建设费用1.适合创建索引的情况 1、字段的数值有唯一性的限制 2、频繁作为 WHERE 查询条件的字段 某个字段在 SELECT 语句的 WHERE 条件中经常被使用到,那么就需要给这个字段创建索引了。尤其是在数据量大的情况下,创建普通索引就可以大幅提升数据查询的效率。 …

1.适合创建索引的情况

1、字段的数值有唯一性的限制

image-20220808223333115

2、频繁作为 WHERE 查询条件的字段

某个字段在 SELECT 语句的 WHERE 条件中经常被使用到,那么就需要给这个字段创建索引了。尤其是在数据量大的情况下,创建普通索引就可以大幅提升数据查询的效率。

比如 student_info 数据表(含 100 万条数据),假设我们想要查询 student_id=123110 的用户信息。

①查看student_info表中的索引

可以看出,我们没有对student_id字段创建索引。

②进行如下查询,耗时220ms

③添加索引

alter table student_info add index idx_sid(student_id);

④再查询。耗时0ms。性能提升很大!

3、经常 GROUP BY 和 ORDER BY 的列

        索引其实就是让数据按照某种顺序进行存储或检索。当我们使用 GROUP BY 对数据进行分组查询,或者使用 ORDER BY 对数据进行排序的时候,如果 对分组或者排序的字段建立索引,本身索引的数据就已经排好序了,进行分组查询和排序操作性能不好吗?另外,如果待排序的列有多个,那么可以在这些列上建立 组合索引

使用GROUP BYORDER BY,先看看不加索引的情况:

没有添加索引,大概执行时间900ms

加上索引

SELECT student_id,COUNT(*) AS num FROM student_info
GROUP BY student_id
LIMIT 100;

执行时间只要40ms,大概相差20多倍!


再考虑复杂一点的情况,group by和order by一起使用

        这是只给student_id和create_time两列单独添加单列索引的情况。可以看到查询速度很慢,要5s多。

ALTER TABLE student_info ADD INDEX idx_sid_cre_time(student_id,create_time DESC);

添加联合索引

使用联合索引只需要耗时0.25ms!

注意:

        如果我们仅仅使用GROUP BY 或者 ORDER BY,且后面只有一个字段,则单独建立索引;如果后面跟多个字段,则建立联合索引。如果既有GROUP BY 又有 ORDER BY,那就建立联合索引,且GROUP BY的字段写在(联合索引的)前面,ORDER BY的字段写在(联合索引的)后面。8.0后的版本也可以考虑使用降序索引。


4、UPDATE、DELETE 的 WHERE 条件列

        对数据按照某个条件进行查询后再进行 UPDATE 或 DELETE 的操作,如果对 WHERE 字段创建了索引,就能大幅提升效率。原理是因为我们需要先根据 WHERE 条件列检索出来这条记录,然后再对它进行更新或删除。 如果进行更新的时候,更新的字段是非索引字段,提升的效率会更明显(不用维护索引了),这是因为非索引字段更新不需要对索引进行维护。

 UPDATE student_info SET student_id = 10002WHERE NAME = '462eed7ac6e791292a79';


5、DISTINCT 字段需要创建索引

        有时候我们需要对某个字段进行去重,使用 DISTINCT,那么对这个字段创建索引,也会提升查询效率。创建索引以后,在B+树种相同的字段就会在一起,这样我们DISTINCT去重的时候,速度就会快很多。

比如,我们想要查询课程表中不同的 student_id 都有哪些,如果我们没有对 student_id 创建索引,执行 SQL 语句:

SELECT DISTINCT(student_id) FROM `student_info`; 

运行结果(600637 条记录,运行时间 0.683s )

如果我们对 student_id 创建索引,再执行 SQL 语句:

SELECT DISTINCT(student_id) FROM `student_info`;

运行结果(600637 条记录,运行时间0.010s )
你能看到 SQL 查询效率有了提升,同时显示出来的 student_id 还是按照 递增的顺序 进行展示的。这是因为索引会对数据按照某种顺序进行排序,所以在去重的时候也会快很多。


6、多表 JOIN 连接操作时,创建索引注意事项

        首先,连接表的数量尽量不要超过 3 张 ,因为每增加一张表就相当于增加了一次嵌套的循环,数量级增长会非常快(n ,n^2 , n^3…),严重影响查询的效率。

        其次,对 WHERE 条件创建索引,因为 WHERE 才是对数据条件的过滤。如果在数据量非常大的情况下,没有 WHERE 条件过滤是非常可怕的。

        注意:对于用连接的字段创建索引,这些字段在多张表中的 类型必须一致 。比如 course_id 在student_info 表和 course 表中都为 int(11) 类型,而不能一个为 int 另一个为 varchar 类型。否则在查询时,虽然也会帮我们进行隐式的类型转换,转换时会使用函数,但会导致索引失效

可以看到,没有使用索引后,多表连接查询效率高了两百多倍!

http://www.ds6.com.cn/news/107974.html

相关文章:

  • 淘客cms建站项目优化seo
  • 招远 两学一做 网站新闻头条今日要闻国内新闻最新
  • 潍坊手机网站制作西安seo关键词排名优化
  • 叮当网站做app如何建立网上销售平台
  • 可以做淘宝店铺开关灯网站东莞网站公司排名
  • 垂直b2b网站有哪些友情链接交换源码
  • 管理咨询公司税收优惠网站seo案例
  • 展示型网站建设价格seo工作内容和薪资
  • 嘉定南翔网站建设网站在线制作
  • 网站建设微信运营推广百度推广员工工资怎么样
  • 天河区门户网站职业培训机构需要什么资质
  • 网站开发学多久福建百度代理公司
  • 如何新建网站dw开发网站多少钱
  • 定制服务dz论坛如何seo
  • 企业有域名怎么做网站网络营销师月薪
  • 网站进度条特效百度官网app
  • 政府网站建设通知seo诊断工具
  • 河西做网站的公司短视频seo营销
  • 免费的招聘网站广告主平台
  • 北京专业网站翻译影音字幕翻译速记速记速记快而高效推广网络推广
  • 免费建设网站是真的吗网站收录提交入口
  • 自己用dw做网站要多久关于市场营销的培训课程
  • 重庆网站建设外包百度seo学院
  • 网站开发招聘简历模板国内新闻最新5条
  • 做盗版小说网站怎么样最有吸引力的营销模式
  • 北京网络科技公司名单班级优化大师使用指南
  • 网站建设饣金手指科杰十二产品关键词大全
  • 上海有哪几家做新房的网站在线网页制作
  • 网站建设应用技术文章发布在哪个平台好
  • 新闻发稿发布平台广州seo怎么做