mysql数据库优化课程---7、网站的搜索技术怎么选
mysql数据库优化课程---7、网站的搜索技术怎么选
一、总结
一句话总结:
1.量很小(像小网站)---like
2.量大一点()---标签
3.量超级大(像百度)---搜索引擎
1、数据库中取一列比取*要快给了我们什么启示?
就是在数据量比较大的情况,比较影响速度的情况。不要取*号,取需要的那些列就好
2、查询一般优化?
1.查单列的速度要优于多列.
2.查主键索引的列中的所有值要比其他列速度快.
3、mysql中如何中断查询语句?
a、ctrl+c
b、\c:反斜杠c
4、like做搜索适合的场合是什么?
小公司,数据量不是很大的时候,适合用like做搜索
因为like的效率不是很高
like的使用方法:
select * from user where username like '%user1%';
5、云知梦网站搜linux课程的时候为啥子可以出现shell?
因为课程存的时候不仅存了标题,其实还存了tag,或者说关键字
比如
linux服务器运维
标签:linux,shell,unix
shell脚本编程
标签:linux,shell
这样搜linux的时候两个都可以出现,其实和我自己做的博客检索思路也是比较像的
其实可以再加一个标签表(然后在标签表中用等于号搜索):
而且是给标签表的name加的索引,用的是=号而不是like
6、like和索引的关系?
like会使索引失效
7、sphinx:如何知道php中支持哪些搜索引擎?
其实php支持的搜索引擎有好几个,可以去php手册里面看看
可以在php手册中找到
其实php支持的搜索引擎有好几个,可以去php手册里面看看,
其实手册里面是啥都有的
二、内容在总结中
查询一般优化:
1.查单列的速度要优于多列.
2.查主键索引的列中的所有值要比其他列速度快.
选择特定的字段:
select id,username from user;
给字段名起别名:
select username as user,password as pass from user;
select username user,password pass from user;
distinct关键字的使用:
select distinct password from user;
使用where条件进行查询:
select * from user where id>=3 and id<=5;
between and的使用方法:
select * from user where id between 3 and 5;
or的使用方法:
select * from user where id=3 or id=5 or id=7;
in的使用方法:
select * from user where id in(3,5,7);
like的使用方法:
select * from user where username like '%user1%';
网站的搜索技术:
1.like
2.标签
3.搜索引擎
5、云知梦网站搜linux课程的时候为啥子可以出现shell?
因为课程存的时候不仅存了标题,其实还存了tag,或者说关键字
比如
linux服务器运维
标签:linux,shell,unix
shell脚本编程
标签:linux,shell
这样搜linux的时候两个都可以出现,其实和我自己做的博客检索思路也是比较像的
其实可以再加一个标签表(然后在标签表中用等于号搜索):
而且是给标签表的name加的索引,用的是=号而不是like