易截截图软件、单文件、免安装、纯绿色、仅160KB

[转]mysql 优化心得一点点

最近网站数据量节节攀升,据BD方面通报短期内UV还要上升30%-50%。当前最突出的问题是后台内容审核系统压力太大,已经逐渐力不从心。尽管加了一些硬件但效果并不是太理想,主要还是前一段时间把工作重点都放在前端模块上了。内容管理平台的部分代码没有仔细斟酌。接下来一段时间集中精力优化后台。
首先将多表连查的SQL拿出来,拆分成单表查询。将查询出来的数据返回到页面上再用ajax得到附表中的数据。这样虽然增加了请求次数,但数据库的slow query不见了。
使用 EXPLAIN 命令逐条检查SQL语句。发现了很多 using sortfile 。说明这些地方是需要重点优化的。检查where 条件后面的字段,建立联合索引。使用 use index(`index_name`) 告诉mysql使用哪个索引进行检索
order by / group by 子句是产生slow query 的多发区。一定要检查 排序字段是否建立了索引,并且要使用 use index(`index_name`) 强制使用这个索引。
终于达到了理想的效果。以前一个分页查询要执行8秒,现在不到0.1秒。但是mysql中文关键字查询一直是优化工作的最后绊脚石。
后台内容审核工作比较特殊,他要求数据不能缓存,检索条件较多,并且需要精准匹配,因此使用Lucene作后台检索是早就被否定的方案。而mysql官方版本又不支持 中文全文检索(主要是没有解决中文分词问题)。一旦碰到标题或内容关键字检索就要使用like '%xxxx%' ,这种方式数据量小的时候还可以接受,但上了几十万数据后就明显体力不支了。
最后确定了两套可行的方案待选。
1、在需要中文关键字词检索的表中,根据要检索的字段再增加一个字词拆分字段并在这个字段上建立 FULLTEXT 类型索引。在数据写入的时候,使用一个分词算法将内容拆分成词并用空格分开,存入新增的拆分字段。检索的时候 使用 match against 对这个FULLTEXT做全文检索。
2、使用海量科技研发的mysql chinese plus 。实际上这个东东是在海量中文分词技术的基础上为mysql增加了中文字词的全文检索。试用版效果很不错。很适合做后台中文检索工作。但是价格也不低。
总结如下:
1、要把建立索引当成一种习惯。
2、善用EXPLAIN命令 分析SQL语句, 检查我们建立的索引是否命中,Extro列中是否还存在 "using sortfile" 如果有的话一定要通过调整索引或修改SQL甚至修改逻辑等方法把他消灭。否则随着数据量攀升mysql早晚会趴下。
3、要评估某字段取值在所有记录中的数量。比如一个字段A 类型为ENUM('yes','no'),表中的100万条记录有99万条记


相关文档:

MYSQL在Windows 2003上连接不上的解决方法

今天搭建mysql数据库,连接了半天,都提示10061错误,以为密码出了问题试了半天,压根连服务都连接不上,忙活了半个多小时,才发现是系统补丁打了之后出现的问题(kb967723)
于是网上找了一下资料
最近一个客户服务器的MYSQL频繁提示连接不上,修改了MYSQL的最大连接数还是这样,于是开始问万能的搜索引擎大人!终于在微软找到了 ......

mysql远程访问的设置

登陆以后运行以下命令,给予远程访问客户端权限..
grant all on *.* to 'remote'@'172.16.21.39' identified by 'password';
remote表示用户名.
'172.16.21.39' 远程ip地址
password表示远程登陆密码.
默认状况下,出于安全考虑,mysql数据库屏蔽了远程访问功能。 然而在许多状况下,你需要在家
或者从web程序去访问 ......

mysql 源码编译安装

环境 rhel5.4
装好gcc 和相应的库。我这边遇到curses。Debian系统的话需安装apt-get install libncurses5-dev。
下载mysql源码包,我自己在myslq官方网站上下了一个“mysql-5.0.87.tar.gz”
cd /usr/local/src/
解包 tar zxvf mysql-5.0.87.tar.gz
cd mysql-5.0.87
./configure --prefix=/usr/local/servic ......

MySQL(asp.net) 事务

 try
        {
            string _conStr = "Driver={MySQL ODBC 3.51
Driver};server=localhost;database=test;uid=test;password=1;option=3";
          & ......

【转】MySQL中SQL优化和架构设计的一些简单想法

普通MySQL运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现MySQL很慢,甚至down掉,那么就要考虑优化我们的MySQL了。
优化无非是从三个角度入手:
第一个是从硬件,增加硬件,增加服务器
第二个就是对我们的MySQL服务器进行优化,增加缓存大小,开多端口,读写分开
第三个 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号