广告系统突然间宕了,事前没有任何的征兆.
服务器上进程一看,MYSQL建立了N个进程没有退出.
把缓存套上,效果不明显.检查了一个晚上后,半夜又来劲了.
最后查找了MYSQL 日志,总算发现了问题.
SELECT COUNT(*) 当 WHERE 条件中出现非主键的或索引建立错误时,将会造成查询缓慢,进程无法退出
广告系统突然间宕了,事前没有任何的征兆.
服务器上进程一看,MYSQL建立了N个进程没有退出.
把缓存套上,效果不明显.检查了一个晚上后,半夜又来劲了.
最后查找了MYSQL 日志,总算发现了问题.
SELECT COUNT(*) 当 WHERE 条件中出现非主键的或索引建立错误时,将会造成查询缓慢,进程无法退出
这种绝对是低级的错误.
基本我也有这毛病,写完了,跑通了,就没有看了
如果自己不暇自哀,而后人哀之,后人哀之而不鉴之,亦使后人而复哀后人也
最近主要工作除了添加新功能外,就是做debug工作
前辈门在代码中定义了如下图的未定义变量,结果就是Notice报了一大片
前端服务器屏掉了错误提示,后台登录后一堆错误.
问了一领导,回答结果是,前辈说,这种错误是可以忽略的,
看来我又多管闲事了…….
估计每个程序员在修改前人留下的代码都会大骂”王八蛋”,这也难免
三目运算,的确带给我们很多便捷但使用的范围是否应该限制一下,举例
$action = !empty( $_GET['action'] ) ? trim( $_GET['action'] ) : 0 ;
获取一个参数,以上的代码,简单明了,一眼就看懂了.
遇到BT的使用方法就是
$function1 = $this->action->getDefault();
$action = !empty( $_GET['action'] ) && is_array( $_GET['action'], array(‘profile’, ’status’, ’save’, ’sort’, ” ) ? intval( trim( $_GET['action'] ) ) : intval( $function1 );
这只是一个简单的范例,
: (
当屏幕都是这种超过120个字符长度的三目运算.拖来拖去.写的时候不类,估计一段时间看回自己写的东西也会大骂!
可能是我水平问题,我是眼疼了,不知道大家感觉如何
我宁愿累一点写成
$action_tag = array(‘profile’, ’status’, ’save’, ’sort’, ” );
if ( !empty( $_GET['action'] ) && is_array( $_GET['action'], $action ) {
—-$action [...]
apache 的 expire 和 gzip 既然有这种BT的事
两个模块之间好像会产生冲突,所有输出的图片既然不会缓存…
一直找不到答案的问题,暂时把GZ去掉了,寻找答案中..
以下是apache的配置参数,望高人指点
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault “access plus 1 month”
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/bmp “access plus 1 month”
ExpiresByType application/x-shockwave-flash “access plus 1 month”
ExpiresByType application/x-javascript “access plus 1 month”
ExpiresByType text/css “access plus 15 days”
</IfModule>
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_minimum_file_size 512
[...]
今天数据库频繁出现表错误,找到些资料收藏一下
MySQL提供了几种repair表的方法,整理出来,方便参考。
在repair表之前,可能多数人会选择先check一下,看看那些表出问题,需要进行repair,所以,先提下check的方法。
在MySQL中,提供三种方法来check表,而且,允许用户在数据库运行过程中对表进行check.
1) 执行 check table tablename [options] SQL语句
mysql> CHECK TABLE fixtures;
+————————-+——-+———-+———-+
| Table | Op | Msg_type | Msg_text |
+————————-+——-+———-+———-+
| sports_results.fixtures | check | status | OK |
+————————-+——-+———-+———-+
1 row in set (0.01 sec)
options参数,可选值为:(下表摘自MySQL 手册)
QUICK
The quickest option, and does not scan the rows to check for incorrect links.
Often used when you do not suspect an error.
FAST
Only checks tables [...]
在高并发的情况意味着很容易就崩溃,任何一微小的改动都会是很大的影响………
总算把这郁闷问题给解决了,测试2天希望能撑下来!
改动完后,load 一下子在20多降到2.0左右,差别太明显了!
在google 搜索一下 找到一篇比较好的文章
原文地址 http://www.lullabot.com/articles/setup-memcached-mamp-sandbox-environment
我之摘取其中需要用到的部分,如果是intel CPU的MAC 本本按照以下步骤就可以配置成功
1 如果你机器还没有安装XCODE请先安装XCODE XCODE可以在你的系统安装盘中找到
2 接着到这个地址下一安装文件,这位老大已经替我们写好了一个
http://topfunky.net/svn/shovel/memcached/install-memcached.sh
3 设置脚本权限并执行
chmod 744 install-memcached.sh
sudo ./install-memcached.sh
4 脚本执行到最后会有提示 Per the instructions at the end of the script, add EVENT_NOKQUEUE=1
5 在你的home目录下 vi .profile 并写入 EVENT_NOKQUEUE=1保存退出
6 检查你的 memcache 是否安装成功 终端下输入 memcached -h 成功会出现一大堆帮助信息
7 继续往下走 下在一个编译好的memcache扩展
http://www.lullabot.com/files/memcache.so_.txt 这个是php-5.2.5 版本编译好的扩展并将扩展复制到
/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922
8 打开 /Applications/MAMP/conf/php5/php.ini ,增加一行 extension=memcache.so 把扩展加载进来
9 重启MAMP
10 搞定
ImageMagick 比GD 强大多了 在MAC下的编译方法和在 其他unix 系统下的操作是一致的
先把必要的东西找齐了
ImageMagick
http://www.imagemagick.org/
imagick
http://pecl.php.net/package/imagick
先编译ImageMagick
tar zxvf ImageMagick.tar.gz
cd imageMagick
./configure LDFLAGS=”-L/usr/lib” CPPFLAGS=”-I/usr/include” –prefix=/usr/local/ImageMagick –enable-shared –enable-lzw
make
make install
编译完成后就到PHP的扩展了
先找回来php源代码
tar zxvf imagick-2.2.0.tgz
把解压出来的imagick 代码移动到php 的目录当中
mv imagick-2.2.0 phpsrcdir/ext/imagick
进入到php源码的目录
删除掉configure
执行 ./buildconf –force
重建configure
重新编译php
更加需要加入参数并加入 –with-imagick=/usr/local/ImageMagick
/configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-openssl –with-imagick=/usr/local/ImageMagic
make
make install
重新启动webserver 重新载入php
大功告成, 有错误之处大家指正