手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

全文索引的苦逼记事二

 继昨天的处理之后,又来新的笔记 ,这次的笔记纯粹是个人的测试,与实际条件有关,比如,我要查询的字段不超过varchar的255的长度,所以我才这么做。

昨天做普通索引后,1100万条记录,索引 为220M,改成全文索引后,索引文件为1.1G,存储空间上,涨了5倍左右。

以下是笔记 ,请不要笑话,场景不同而已

 

  • 经过测试
    • title 字段改为全文索引后,在1100万条的时候
      • 优点:
        • 速度也为0.0x秒级。速度非常快
        • 即使有or条件,只要带了limit参数,速度也非常快
      • 缺点:
        • 如果查询不带limit ,直接卡死,因为他要计算total count
        • select count() 卡死
        • 如果查询不存在的关键字,卡死
    • 使用方法
      • 尽量不做select count 查询 (数量低于100万时可以考虑,超过100万时,其实已经没有必要)
      • 查询一定要带上limit条件
      • 每次查询到不存在的关键字时,记录到关键词库,每次有新增记录时,select 关键词库一下,如果新增房间中有关键字,则将关键词去除,避免卡死
  • 暂时不使用coreseek(sphinx)/xunsearch等第三方工具
    • xunsearch只支持分词查询,不支持完全匹配
    • 第三方工具,耗内存,而且增量的时候,不够及时

Tags: 索引

上月北京游时的一些小吃

 北京游时的小吃:

某天的早饭,骨头汤馄饨,包子是按两卖的,不是按个的。豆腐脑(好奇怪,与南方的完全不一样)

大小: 107.46 K
尺寸: 500 x 375
浏览: 1467 次
点击打开新窗口浏览全图

大小: 91.07 K
尺寸: 500 x 375
浏览: 1690 次
点击打开新窗口浏览全图

大小: 111.42 K
尺寸: 500 x 375
浏览: 1459 次
点击打开新窗口浏览全图

石头带我去的特色,说是豆汁相对比较正宗,认为我喝不下,结果我喝大半碗,觉得还OK。小吃是大杂烩,每样买了点,正好是吃了上述的早饭,然后实在撑不下了。不过我还是吃了好多

大小: 123.05 K
尺寸: 500 x 375
浏览: 1377 次
点击打开新窗口浏览全图

大小: 127.41 K
尺寸: 500 x 375
浏览: 1398 次
点击打开新窗口浏览全图

大小: 138.77 K
尺寸: 500 x 375
浏览: 1431 次
点击打开新窗口浏览全图

大小: 156.61 K
尺寸: 500 x 375
浏览: 1653 次
点击打开新窗口浏览全图

吃的特色馄饨店的馄饨。。(盘子上有字:馄饨候)

大小: 129.73 K
尺寸: 500 x 375
浏览: 1450 次
点击打开新窗口浏览全图

大小: 130.81 K
尺寸: 500 x 375
浏览: 1443 次
点击打开新窗口浏览全图
说这个是玫瑰酥?我一看就觉得是月饼嘛。。上海这种N种花样的月饼太多了,吃了一个,好吧,不太习惯吃这种月饼,上海的月饼我也只吃肉的,比如老大坊的鲜肉月饼,黑黑

全文索引的苦逼记事一

 这是一篇未完成的博客,在这里面做了一点记录

场景:需要做一个关于标题的模糊查询,只是记录有点多,而且需要相对精确,比如搜索:ac, 不能出现abc,可以接受acb,bac,之类。
测试:
1、100万数据,mysql / mongo ,在这种情况下。无论是查询什么数据,基本上都在0.00x秒级,
mysql的查询是like '%xxxx%' , mongo 是 {title:/xxxx/i} 
一般情况下,两者速度真心差不多,但如果查询一下不数据库中不存在的关键字,一般都在0.2秒至2秒左右,mongo会相对好一点,在0.5秒
 
2、500万~1000万数据
查询条件如上
mysql 查询的时候 cpu 占40%左右,20多秒 (mysql 1100万数据)
mongo 查询的时候 CPU占50%左右,10秒/8秒左右 (mongo 550万)
这种性能没法用啊
 
---下一步
1、xunsearch / coreseek(sphinx)
2、mysql 全文索引
 
需要再次测试一下。关键mysql虽然100万只有0.00x或者0.0x秒左右。但是如果多个并发的时候就会卡死了。
所以需要再次考虑 场景的复杂性

Tags: 索引

Shanghai PHP conference 2013(ThinkInLamp)

 早上锅巴在群里发了个链接(http://www.php.net/conferences/)。一看,大为震惊,这真是很难得的事情:

Shanghai PHP conference 2013

ThinkInLAMP is pleased to announce the first Shanghai PHP conference 2013. This event will be held on Sunday June 30th 2013 in Shanghai, China. A community oriented conference which is organized by an excellent line up and socials.

This event will concentrate on PHP languages and web based technologies used today; extension, latest dynamics and new applications within the increased demand for developers and everyone who is interested in PHP language.

There will be more than 500 developers owned over 3 year’s experiences andsenior technical persons come for learning and networking. Register soon as the Early Bird discount rate expires on May 30.

Go to http://php.thinkinlamp.com/2013 for more information, we are looking forward to seeing you in June!

看到这个,你还有什么好犹豫的?赶紧拿起手中的电话,拨打thinkinlamp的参与热线吧

MySQL STRAIGHT_JOIN 与 NATURAL JOIN

 这是一篇文档的简要介绍,本来没有想过要提的,因为我以前真没用过straight join,看到这个名词其实是老王的一句话,他说,利用这个优化了SQL,于是就看了一下。果然发到了这句话:

XML/HTML代码
  1. STRAIGHT_JOIN 实际上与内连接 INNER JOIN 表现完全一致,不同的是使用了 STRAIGHT_JOIN 后,table1 会先于 table2 载入。  
  2. 提示  
  3. MySQL 在执行 INNER JOIN 的时候,会根据自己内部的优化规则来决定先载入 table1 还是 table2,如果您确认 MySQL 载入表的顺序并不是最优化的时候,就可以使用 STRAIGHT_JOIN 以替代 INNER JOIN。  

我参考的这页,说是关于mysql 的join有五篇:

本章节内容共分 5 部分:

  1. 1. MySQL JOIN 语法说明与 INNER JOIN 语法用法实例
  2. 2. MySQL LEFT JOIN 语法用法与实例
  3. 3. MySQL RIGHT JOIN 语法用法与实例
  4. 4. MySQL JOIN 多表连接
  5. 5. MySQL STRAIGHT_JOIN 与 NATURAL JOIN
  6. 确实 是值得一看。

Tags: mysql