付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
昨日回顾前缀索引:只给一个字段,前面的几个字符建立索引Btree树:myisam的索引的结构,每个节点是512k,可以放关键字数据对应的是记录的位置innoDB:一级和二级索引.一级索引:主键索引.数据和主键索引保存分区:key和hash,取模分区rangelist范围分区分区的字段一定要是主键,或者是主键的一部分如果删除key和hash分区,数据会自动转移到其他分区下.range和list分区删除,数据会丢失.分表物理分表和垂直分表垂直分表:用户表 passwordaddrphonehobbysex 慢查询日志:设置时间阈值,把项目中执行时间超过阈值都记录下来,然后可以进行优化.缓存:把执行频率高,数据变化频率小的sql查询结果缓存起来.如果表sql语句优化:大的项目中尽量不要使用子查询,还有联合插叙.尽量少场景搜索,PHP的前景,查看效例子CREATECREATETABLE`music``id`int(10)unsignedNOTNULL`title`varchar(30)NOTNULLDEFAULT`author`varchar(30)NOTNULLDEFAULT`content`PRIMARYKEYENGINE=MyISAMCHARSET=utf8COMMENT歌曲表当数据量非常大时,没有索引就会变得非常慢LIKE并以%开头的查询时,会进行全表扫描。比如 商品中有商品500万件。如 要搜索商品名称中带红色的,如果不SPHINX肯定是这样写:SELECT*FROMphp34_goodsWHEREgoods_nameLIKE‘%红色这条SQL会进行全表扫描,所以性能非常慢,查询速度非常慢sphinx就可以解决以上两个问题:text,varcharLIKE查询时,如(根据歌词搜索歌曲这个功能)MYSQLSPHINX:了解(sphinx的相关介(sphinx是由 全文索引的时候分词的不足。但是需要主要是的sphinx本身只支持英文和俄文,本身不支持中文的有人为其开发了一个中文的常见的语言的分词包叫做 理 sphinx根据搜素的关键字,取mysql中获取相应的id,然后把然会给.然后再根据id,到数据库中获取相应的信息再将id返回给php.php再根据id获取记录c.再通过id查询mysql数据库对应数据【类似这样的*FROMsongsWHEREidIN(1,2,3,4,6);安装准备工地Sphinx官网概念-准备:导入music.sql数据文件,在课件中存概念Coreseeksphinx的关系Coreseek是一款中文全文检索/搜 ,基于Sphinx研发并独立发布,专攻中搜索和信息处理领域,适用于行业/垂直搜索 /站内搜索、数据库搜索、文档/文献索、信息检索、数据挖掘等应用场景安装a指定安装的位置,并且拷贝压缩这这里不区分32bitb解压文件,并且直接将文件放到c修改 下面配置文件的名修修改csft_mysql.conf文件名字为mysql.conf,修改之后移动到 配置sphinx.conf的配source{ = = = = = =sphinx =SETNAMES主查询就是一条语句,sphinx取出的第一个字段有以下要求1id(别名也可以23 #为歌曲表的titlecontent建立索sql_query=SELECTid,title,contentFROMsql_query_info_pre sql_query_info =SELECT*FROM }#配置索引文件,生成索#source对应一个indexindexmusic{#source = #生成的索引文件存 ,这里的music不是文 ,表示索引文件的名 = = = = = = /products- #charset_dictpath/usr/local/mmseg3/etc/#BSD、 #Windows .utf-} #建立索引时最大可以使用的内存,越大速度越 =}{ = = 最大返回的记录数,找到100000条只返回其中的1000 = = = =#idpid_file=#log#查询日志存放位 query_log=}配置总结source{}:一个index就要对应source,名字也一定要保持一致.配置文件中允许有多个indexindexer{}和searchd{}属于服务器的配置,一个配置文件中只能有一个.脚下留心注意sphinx的配置文件是utf-8编码,如果保存成了其他的编码,配置就索引的创其实就是到mysql数据库中相应的数据信息,然后在sphinx内a向数据库中导入music表中的数b创建sphinx的索引文件语法indexerc配置文件路径引名称(--all代表所有索引)indexer-cD:/wamp/sphinx/sphinx.confmusicvar/data下面已经生成了相关的索引文注意cmd中需要切换到sphinx的bin 下面var/data下面已经生成了相关的索引文安装sphinx服务安装sphinx服务语法:searchdc配置文件--installa安装sphinx的服务c启动sphinx服启动服务:netstart多学一招:其令的查引入sphinxapi.php文件到项目中进行操案列:a查看sphinx的调用文件,直接到工 下即b借口文件到 修修改sphinxapi.php件中构造方法的写法c添加一个test.php.添加连接sphinx的代d执行查看返回的结e查看短语拆分的效模式举例说举例:我喜欢分词: 喜 匹配模式介比如:我喜欢SPH_MATCH_ALL匹配所有查询词(默认PHP且乐此不疲知乎用户的我回答匹配“ :我喜欢PHP且乐此不疲知乎用户的我回答匹配“ :我喜欢Vista的11大理由_国外最牛的PHP开源建站平台SPH_MATCH_ANY匹配查询词中的任意一匹配“我 匹配“世界上最好的语匹配“我 匹配“世界上最好的语言是PHP吗SPH_MATCH_PHRASE:将整个查询词看做一个词组,要完全匹注意关闭sphinx的服重新开启sphinx的服注意关闭sphinx的服重新开启sphinx的服b修改匹配模式,验证整词匹:$rs$rs$sphinx->query('!寒冷$rs$sphinx->query('|冷$rs$sphinx->query('&冷$rs$sphinx->query('|php)',PHP(PHP不加小括号,会被分隔成PHP三个词所以加上小括号代表一个整体)$rs$sphinx->query('&php)',a测试包含冬天或者我喜欢php,但是php不能被拆b测试包含冬天和冷的搜SPH_MATCH_EXTENDED:查询看做一个的表达$str$str$sphinx->query('@title@content 匹配title包含我爱,且content包含php测试查询表达式的使a添加数据80003我爱 crazy干一行,php是第b重新生成索11sphinxc实现代码如将sphinx的结果转化为具体的信思现在通过sphinx获取到的就是数据记录的连接数据库,将获取到的id使用in()语法获记录信将获取的结果进行转实际操a添加数据库连接的代b结果如下c更改匹配的模式,再次查询,观察结结果如下完整的代码$s=new$s-$index'music';////$keyword=//$s- ode(SPH_MATCH_ALL);匹配所有的词,//查 ,制定查询的索引文件//$s- $s- ode(SPH_MATCH_PHRASE);//$s ode(SPH_MATCH_BOOLEAN);////$s- $res$s->Query('$error=$s->GetLastError();}//提取sphinx中返回的if(!isset($res['matches']))exit('么有结果$arr=$str=implode(',',//连接mysql数据$li=mysqli_query($li,'setnames$sql="select*frommusicwhereid$res=$arr=while($re=mysqli_fetch_array($res))$arr[]=echo'<preSphinx索引现在每一次添加数据之后都需要将sphinx的索引重新生成,需要关机,思每一次只将添加的数据,生成索引,然后把这个新的索引和就需要新建一个表,用于上一次生成索引时的最大记录id,生成实际操a新建一个数据表,保存最大的数据createcreatetablesphinxmax_idintunsignednotnulldefault)b在原来的数据源music中,记录最大的c因为要为新增的数据生成索引,所以要新建一个source{}和新增一个source新增一个index名字为测a重新生成music表的索引文idsphinxb添加数据,生成新增数据的索引文music中添加数sphinx表中数据出现了更语法:indexerc--merge语法:indexerc--merge--indexer-c D:\wamp\sphinx\etc\sphinx.conf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖南第一师范学院招聘非事业编制人员3人备考题库及一套答案详解
- 2026年4月广东深圳市大鹏新区政务服务和数据管理局招聘编外人员3人备考题库附答案详解(典型题)
- 2026广西北海市行政审批局招聘北海市政务服务中心聘用人员控制数2人备考题库附答案详解(培优b卷)
- 2026湖北武汉市华中农业大学园艺林学学院设施与智慧园艺方向专任教师招聘备考题库有答案详解
- 2026河北武汉市第二十六中学招聘高中教师6人备考题库带答案详解(完整版)
- 2026西北工业大学航天学院飞行控制研究所招聘备考题库(2人)含答案详解(b卷)
- 《异分母分数加减法》教学设计
- 网络信息安全与防护手册
- 网站SEO优化策略手册
- 教学管理与学员发展手册
- 林业造林工程监理规划方案
- 广东省湛江市2026年普通高考测试(一)语文试题及参考答案
- 综治研判会议制度
- 2026年兰考三农职业学院单招职业技能考试题库含答案详解(完整版)
- 世界各地高中教育体系比较
- 原料不合格处置管理培训
- 2026年中考语文专题复习:标点符号 讲义
- 常见病小儿推拿培训
- 政务颁奖礼仪培训
- 疝气手术护理宣教
- 行文格式规范培训
评论
0/150
提交评论