友情提示:
最新在研究squid、varnish、fastcgi_cache等缓存加速技术,有兴趣的朋友加我QQ 8431360

Mysql错误索引比没索引还慢

今天一个客户反映网站某个页面很慢。初步分析是数据库查询造成的延时。

打开数据库的慢查询日志,监控到如下语句

 # Time: 120115  1:09:37

# User@Host: sq_ttt[sq_ttt] @ localhost []

# Query_time: 3.895267  Lock_time: 0.000131 Rows_sent: 1  Rows_examined: 168835

use sq_ttt;

SET timestamp=1326560977;

SELECT A.*,A.aid AS id FROM p8_article A  WHERE A.yz=1  AND A.fid IN (31)  AND A.ispic=1 ORDER BY A.list DESC LIMIT 0,1;

这个查询用了3.8s时间。

于是进入数据库开始了这次分析。。。

阅读全文>>

评论:0 浏览:213

bbsxp 6.0数据导入phpwind 8.7方法

今天帮助猪八戒网上的一个客户将原来的bbsxp 6.0的论坛数据迁移到phpwind 8.7下。这里主要记录下思路

phpwind官方论坛有各种的迁移程序,但是继续bbsxp的最早版本是2008. 而我这个客户的是bbsxp 6的access库。

完成这个任务,我顺利升级到猪三戒!呵呵

 

没有现成的,只能自己分析了。

为了导入方便,我先将需要用到的数据从access的库导入mysql里。

这样bbsxp的表和新安装的phpwind表都在一个库了。

阅读全文>>

评论:0 浏览:362

Linux源码安装MySQL多版本共存

原来我的服务器上是MySQL 5.5.16。本来是用的挺稳定。但是当时编译的时候由于手误将DDEFAULT_COLLATION=utf8-general_ci \弄错啦。。。应该是utf8_general_ci。导致很多程序用的时候报错,或者需要修改。

最近发现MySQL更新到了5.5.18了,就打算迁移到新数据库正好修正原来问题。

为了不影响访问,就打算在5.5.16运行的情况下,继续安装好5.5.18.等顺利转移到5.5.18后,再关闭原来MySQL5.5.16版本。

也就有了今天这篇文章。在Linux下从源码安装多版本或者多个MySQL数据库。

阅读全文>>

评论:0 浏览:445

mysqldump备份blob类型内容

用mysqldump备份出数据库内容到SQL文件。当我们数据库表有blob类型字段的时候,这个导出的SQL再导入的时候就会因为blob字段内容乱码等原因,不能顺利导入了。

解决办法:

在用mysqldump备份的时候,采用--hex-blob参数,这样备份出来的sql文件,就可以顺利导入了。

评论:0 浏览:1623

mysqldump解决中文乱码问题

我的数据库采用编码如下:

mysql> show variables like 'coll%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
 

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
 

数据库的编码采用utf8

开始用mysqldump出来的都是乱码。后来采用 --default-character-set=gbk参数,然后再用iconv转码为utf8就解决了问题。

下面是我的数据库备份脚本

复制内容到剪贴板
  1. #!/bin/sh   
  2. #####configurate#######   
  3. rq=`date +%Y%m%d%N`   
  4. user="user"  
  5. password="password"  
  6. rm -rf /var/lib/mysql/mysql-bin.*   
  7. mysqldump -u$user -p$password --default-character-set=gbk --single-transaction --flush-logs --master-data=2 mydatabase>/home/ict/mysql_backup/database$rq.sql   

导出后转码

iconv -t utf-8 -f gbk -c database.sql>databaseutf8.sql

这样已经可以看到正确的中文了。

导入

在windows下,如果采用HeidiSQL打开SQL文件,可以正确看到中文,但是导入后还是乱码。

解决办法,采用记事本打开,选择另存为,编码选择ANSI。然后再用HeidiSQL工具打开导入即可。

评论:0 浏览:49587

© 2012 鑫的方向
iDream theme by Templates Next | Powered by Emlog