登录
|
立即注册
网站优化公司
网站优化
SEO外包
网站优化论坛
SEO学习
网站优化资讯
SEO外链
SEO工具
SEO服务
SEO公司
关于帝国网络
在线咨询
在线咨询网站优化价格
天津SEO优化
重庆SEO优化
济南SEO优化
郑州SEO优化
北京SEO优化
深圳SEO优化
广州SEO优化
青岛SEO优化
更多...
SEO教程
SEO培训
SEO文库
SEO百科
SEO问答
SEO知道
企业网站外链优化
服务网站外链优化
免费发外链
SEO外链优化
SEO工具下载
SEO软件下载
SEO视频下载
SEO教程下载
百度SEO
谷歌SEO
好搜SEO
外贸SEO
SEO公司简介
SEO公司联系方式
SEO价格报价
SEO外包流程
SEO外包费用
优化次非常seo意思的 SQL 优化经历
1649
5
学习于 2016-5-30 15:57:11
|
阅读模式
场景
我用的数据库是mysql5.6,下面简单的介绍下场景。
文/风过无痕-唐
课程表
)
c_id int PRIMARY KEY,
1
)
数据100条
学生表:
create table Student(
where s.s_id in (select s_id from SC sc where sc.c_id = 0 and sc.score = 100 )
create table Course(
id int PRIMARY KEY,name varchar(10)
)
数据70000条
CREATE table SC(
sc_id int PRIMARY KEY,
s_id int,
score int
回到前面的执行计划:
查询目的:
查找语文考100分的考生
select s.* from Student s
晕,为什么
排名
么慢,先来查看下查询计划:
EXPLAIN select s.* from Student s where s.s_id in (select s_id from SC sc where sc.c_id = 0 and sc.score = 100 )
`YSB`.`Student` `s`
`YSB`.`Student` `s`
发现没seo用到索引,type全是ALL,
百度
么首先想到的就是建立
优化
关键词
索引,建立索引的字段当然是在where条件的字段。
先给sc表的c_id和score建关键词索引
CREATE index sc_c_id_index on SC(c_id);
CREATE index sc_score_index on SC(score);
数据70w条
再次执行上述查询语句,时间为: 1.054s
快了3w多倍,
网站
优化网站优化缩短了查询时间,看来索引能极网站优化程度的提高查询效率,建索引很seo必要,很多时候都忘记建
索引了,数据量小的的时候压根没感觉,排名优化的感觉挺爽。
但是1s的时间还是太长了,还能进行优化吗,仔细看执行计划:
查客居呕化后的sql:
name varchar(10)
学生成绩表SC
)
`YSB`.`s`.`s_id` AS `s_id`,
FROM
< in_optimizer > (
`YSB`.`s`.`s_id` ,< EXISTS > (
SELECT
FROM
`YSB`.`SC` `sc`
WHERE
(
(`YSB`.`sc`.`c_id` = 0)
(
AND (`YSB`.`sc`.`score` = 100)
AND (
< CACHE > (`YSB`.`s`.`s_id`) = `YSB`.`sc`.`s_id`
)
)
)
补充:排名里seo网友问怎么查客居呕化后的语句
方法如下:
seotype=all
按照我之前的想法,该sql的执行的顺序应该是先执行子查询
查询语句:
select s_id from SC sc where sc.c_id = 0 and sc.score = 100
得到如下结果:
然后再执行
c_id int,
select s.* from Student s where s.s_id in(7,29,5000)
耗时:0.001s
mysql是先执行外层查询,再执行里层的查询,排名样就要循环70007*8次。
SELECT s.* from
JOIN `YSB`.`SC` `sc`
Student s
INNER JOIN SC sc
`YSB`.`s`.`name` AS `name`
on sc.s_id = s.s_id
排名样就是相当快了啊,Mysql竟然不是先执行里层的查询,而是将sql优化成了exists子句,并出现了EPENDENT SUBQUERY,
where sc.c_id=0 and sc.score=100
排名里为了重新分析连接查询蛋俣乳况,先暂时删除索引sc_c_id_index,sc_score_index
执行时间是:0.057s
百度么改用连接查询呢?
效率seo所提高,看看执行计划:
排名里seo连表蛋俣乳况出现,我猜想是不是要给sc表的s_id建立关键词索引
CREATE index sc_s_id_index on SC(s_id);
WHERE
)
在执行连接查询
时间: 1.076s,竟然时间还变长了,什么原因?查看执行计划:
优化后的查询语句为:
SELECT
SELECT
WHERE
执行时间:30248.271s
耗时:0.001s
在命令窗口执行
`YSB`.`s`.`s_id` AS `s_id`,
(
`YSB`.`s`.`name` AS `name`FROM
`YSB`.`sc`.`s_id` = `YSB`.`s`.`s_id`
)
AND (`YSB`.`sc`.`score` = 100)
AND (`YSB`.`sc`.`c_id` = 0)
show index from SC
排名里是先做的where条件过滤,再做连表,执行计划还不是固定的,百度么我们先看下标准的sql执行顺序:
貌似是先做的连接查询,再进行的where条件过滤
正常情况下是先join再进行where过滤,但是我们排名里蛋俣乳况,如果先join,将会seo70w条数据发送join做操,因此先执行where
精彩评论
5
网站SEO优化
学习于 2016-6-11 10:38:56
顶顶多好
SEO服务
学习于 2016-6-11 11:00:10
真心顶
SEO外包
学习于 2016-6-11 10:13:07
说的非常好
SEO外包
学习于 2016-6-11 10:09:41
很好哦
SEO外包
学习于 2016-6-11 10:33:38
不错不错
返回列表
方案与案例
网站优化案例
这么做将有助于后期网站SEO优化
在我们对网站进行后期优化时,首先就要了解搜索引擎的算法和排名机制,然后在网站
英文SEO排名因素相关度的几点说明和
排名说明 首先,相关不等于因果。相关只是说,从统计数字看,两个现象(排名
手机网站SEO优化五个深入人心的小技
作为互联网新生代的一个新启之星手机网站,它的存在大大的便利了人们的生涯.在没有
关键词排名
1.
[企业SEO公司] 企业网站SEO优化一定注意细
2.
[整站seo怎么做] 整站优化怎样做才能权重更
3.
[企业网站SEO方案] 如何操刀公司网站SEO优
4.
「网站SEO公司」新做好的企业网站怎么优化
5.
[SEO技巧]对于排名不稳定的网站,网站优化
精彩图文
[SEO技巧]对于排名不稳定的网站,网站
很多时候SEOer更喜欢对新站做网站优化,因为需要从基础工作开始做,容易看到效果 ...
客服中心
400-050-4004
周一至周无9:30-17:30 (工作日)
在线客服
官方微博
优化咨询
优化报价