先说说Solr来索引MySQL数据有什么优点~
我们的数据库表有很大的表,每天20w数据插入,表里已经累积了2900w的数据,而业务需求又需要一些比较实时的筛选count,遇到一些复杂的count的话MySQL返回结果都是以秒计算。严重拖慢了整个系统的性能。
所以有了搭建搜索引擎来索引MySQL里数据的需求。
之前虽然翻译了一篇5分钟搭建Solr的教程,然而到了导入MySQL这一步还是遇到了很多坑,泪。
因为Solr本身的文档写得不够美丽(滚,而且在网上搜导入MySQL数据的教程都是要么语焉不详,要么都是用的老版本的Solr,所以悲催地踩了两天坑,才终于搭好了基本功能。
下面做一下简单的记录:
1.安装
wget -c http://mirror.bit.edu.cn/apache/lucene/solr/5.3.1/
网站做大了以后,因为MySQL在较高的qps下表现比较差,如果是创业公司的话,那可能租用的都是公有云的机器来做自己的服务,也许就是个内存2GB,cpu两核的kvm,能够使用的资源非常非常的少,所以数据库的实例本身性能也不会好到哪里去。在整体qps达到一定量级之后必然会遇到性能低下的问题,至于这个临界值,是由具体的机器配置得到的,这里就不给出什么结果了,感兴趣的同学可以自己去搜索。
MySQL抗不住的情况下只能引入缓存来提升整体性能了,网站开发有一个比较著名的二八原则,就是80%的用户其实访问的都是20%的数据。所以实际上你只要把这20%的数据缓存好,就可以让网站整体的响应和吞吐量上一个等级。缓存为什么能比去读数据库快?原理也很简单,大多数的缓存会把数据存储在内存中,而数据库则是要去硬盘读取。这两种介质在速度上相差了好几个数量级。
缓存固然好,但假如你的网站变得越来越大的时候,可能会慢慢发现单台机器已经满足不了自己的需求了。这时候就涉及到缓存分布的问题,如果是一个在学校里没有接触过工程项目的人的话,很容易想出来按照请求@key,
之前在大厨网写的环境搭建教程,粘在博客里备份一下~
在执行以下步骤前请确保自己的机器中有ruby的环境
ruby --version
1.下载virtualbox并安装
https://www.virtualbox.org/wiki/Downloads
2.下载vagrant,这里我们使用的版本是1.7.2,并安装
https://www.vagrantup.com/downloads.html
下面是一些vagrant的介绍:
虚拟开发环境
平常我们经常会遇到这样的问题:在开发机上面开发完毕程序,放到正式环境之后会出现各种奇怪的问题:描述符少了、nginx配置不正确、MySQL编码不对、