数据库高并发的经验分享
[ 2012-12-19 13:56:38 | 作者: admin ]
主要是针对数据量很大,和并发访问量高的时候
经验一:
在开发过程中,我们经常会写
SELECT * FROM table WHERE 1 ORDER BY xxx DESC LIMIT 0,10
这样的语句用来分页
在有完美索引的情况 对xxx建立索引
前面几页会很快,但如果数据量达到100万级以后,我们查询最后一页
SELECT * FROM table WHERE 1 ORDER BY xxx DESC LIMIT 999990,10
这句执行就会很慢,同时有多人访问服务器就会掉(这里不考虑缓存,因为内容更新太快,有时候缓存了达不到数据的更新的要求)
但如果我们把
SELECT * FROM table WHERE 1 ORDER BY xxx DESC LIMIT 999990,10
换成
SELECT * FROM table WHERE 1 ORDER BY xxx ASC LIMIT 0,10
...
阅读全文…
经验一:
在开发过程中,我们经常会写
SELECT * FROM table WHERE 1 ORDER BY xxx DESC LIMIT 0,10
这样的语句用来分页
在有完美索引的情况 对xxx建立索引
前面几页会很快,但如果数据量达到100万级以后,我们查询最后一页
SELECT * FROM table WHERE 1 ORDER BY xxx DESC LIMIT 999990,10
这句执行就会很慢,同时有多人访问服务器就会掉(这里不考虑缓存,因为内容更新太快,有时候缓存了达不到数据的更新的要求)
但如果我们把
SELECT * FROM table WHERE 1 ORDER BY xxx DESC LIMIT 999990,10
换成
SELECT * FROM table WHERE 1 ORDER BY xxx ASC LIMIT 0,10
...
阅读全文…
jQuery Mobile 入门教程
[ 2012-12-19 12:14:21 | 作者: admin ]
http://mobile.51cto.com/others-277308.htm
jQuery Mobile提供了基于手机界面的控件样式,可以方便地让你开发出符合手机操作习惯的界面。比如较大的按钮等等。
使用jQuery Mobile需要应用jQuery Mobile提供的js文件和css文件,可以直接url链接引用或者下载到本地引用皆可。参见以下代码:
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script type="text/javascript" ...
阅读全文…
jQuery Mobile提供了基于手机界面的控件样式,可以方便地让你开发出符合手机操作习惯的界面。比如较大的按钮等等。
使用jQuery Mobile需要应用jQuery Mobile提供的js文件和css文件,可以直接url链接引用或者下载到本地引用皆可。参见以下代码:
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script type="text/javascript" ...
阅读全文…
Linux自动备份网站文件和数据库上传到FTP空间
[ 2012-12-17 22:05:02 | 作者: admin ]
此文介绍一种,每天自动备份网站以及数据库文件,发送EMAIL到邮箱,并上传网站和数据加文件到FTP空间,自动删除旧备份的方法。
首先安装EMAIL发送组件:
yum install sendmail mutt
如果服务器未安装FTP客户端的见下文:
http://www.liukai.cn/centos-bash-ftp-command-not-found
脚本下载地址:
http://www.liukai.cn/soft/linux/AutoBackupToFtp.sh
脚本代码如下(注意修改FTP服务器地址用户名密码):
#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root #mysql用户名
MYSQL_PASS=123456 #mysql密码
MAIL_TO=cat@hostloc.com #数据库发送到的邮箱
...
阅读全文…
首先安装EMAIL发送组件:
yum install sendmail mutt
如果服务器未安装FTP客户端的见下文:
http://www.liukai.cn/centos-bash-ftp-command-not-found
脚本下载地址:
http://www.liukai.cn/soft/linux/AutoBackupToFtp.sh
脚本代码如下(注意修改FTP服务器地址用户名密码):
#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root #mysql用户名
MYSQL_PASS=123456 #mysql密码
MAIL_TO=cat@hostloc.com #数据库发送到的邮箱
...
阅读全文…
win2003 discuz的memcache 安装
[ 2012-12-17 21:55:03 | 作者: admin ]
p.s. discuz上memcache后效果异常明显,所以大部分中型php项目还是应当开启memcache。尤其是windows平台下面,应该有3倍以上性能提升
先去下载 安装程序 memcached-1.2.6-win32(可以百度搜索memcached win32查看更新版本)
然后解压到 d:\memcache
然后 开始—运行 d:\memcached\memcached.exe -d install 安装一下
在输入 d:\memcached\memcached.exe -d start 启动。
以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
去下载php_memcache.dll 整对版本了。。http://downloads.php.net/pierre/
(版本需要注意选择,...
阅读全文…
先去下载 安装程序 memcached-1.2.6-win32(可以百度搜索memcached win32查看更新版本)
然后解压到 d:\memcache
然后 开始—运行 d:\memcached\memcached.exe -d install 安装一下
在输入 d:\memcached\memcached.exe -d start 启动。
以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
去下载php_memcache.dll 整对版本了。。http://downloads.php.net/pierre/
(版本需要注意选择,...
阅读全文…
mysql的字符串函数
[ 2012-12-17 14:55:08 | 作者: admin ]
对于针对字符串位置的操作,第一个位置被标记为1。
1.ASCII(str)
返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。
mysql> select ASCII('2');
-> 50
mysql> select ASCII(2);
-> 50
mysql> select ASCII('dx');
-> 100
也可参见ORD()函数。
2.ORD(str)
如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()函数返回的相同值。
...
阅读全文…
1.ASCII(str)
返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。
mysql> select ASCII('2');
-> 50
mysql> select ASCII(2);
-> 50
mysql> select ASCII('dx');
-> 100
也可参见ORD()函数。
2.ORD(str)
如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()函数返回的相同值。
...
阅读全文…
SDK 跨 Android 和 iOS 双平台,appcan和PhoneGap
[ 2012-12-16 17:07:28 | 作者: admin ]
目前可以编译成 iPhone 和 Android 应用的开发工具比较多,appcan和PhoneGap都做得不错
AppCan是国内领先的移动应用开发平台,支持HTML5快速开发手机应用,同时支持iOS、Android、Symbian、WindowsPhone。
http://www.appcan.cn/
PhoneGap是一个开源的开发框架,使用HTML,CSS和JavaScript来构建跨平台的的移动... 除了在本地编译应用之外,您还可以使用Phonegap提供的云端Build工具进行应用编译。
http://www.phonegap.com
http://www.phonegap.cn
AppCan是国内领先的移动应用开发平台,支持HTML5快速开发手机应用,同时支持iOS、Android、Symbian、WindowsPhone。
http://www.appcan.cn/
PhoneGap是一个开源的开发框架,使用HTML,CSS和JavaScript来构建跨平台的的移动... 除了在本地编译应用之外,您还可以使用Phonegap提供的云端Build工具进行应用编译。
http://www.phonegap.com
http://www.phonegap.cn
网页自适应屏幕的设置方法
[ 2012-12-15 14:09:06 | 作者: admin ]
随着3G的普及,越来越多的人使用手机上网。
移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?
手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素。同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的事。
很多网站的解决方法,是为不同的设备提供不同的网页,比如专门提供一个mobile版本,或者iPhone / iPad版本。这样做固然保证了效果,但是比较麻烦,同时要维护好几个版本,而且如果一个网站有多个portal(入口),会大大增加架构设计的复杂度。
于是,很早就有人设想,能不能"一次设计,普遍适用",...
阅读全文…
移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?
手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素。同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的事。
很多网站的解决方法,是为不同的设备提供不同的网页,比如专门提供一个mobile版本,或者iPhone / iPad版本。这样做固然保证了效果,但是比较麻烦,同时要维护好几个版本,而且如果一个网站有多个portal(入口),会大大增加架构设计的复杂度。
于是,很早就有人设想,能不能"一次设计,普遍适用",...
阅读全文…
php中使用mb_strlen解决中文字符数,以及中文截取乱码问题
[ 2012-12-13 20:14:15 | 作者: admin ]
p.s. 使用mb_strlen函数必须指定编码
在长度检查方面,数据库使用的是varchar,长度是按字符个数算的,比如“abcdef”算6个字符,“一二三四五六”也算六个字符。而php的strlen方法算出并不一样,strlen("abcdef")是6,而strlen("一二三四五六")是18。这样检查起来就麻烦了。
php处理中文字符数,可以用mb_strlen() ,具有编码无关性,看下面的演示:
mb_strlen('abcdef','utf-8') == 6
mb_strlen('一二三四五六','utf-8') ==6
另外中文的截取也需要mb_substr()也是编码无关性,看演示
<?php
echo mb_substr('曾经年少爱追梦一心只想往前飞', 0, 7, 'utf-8');
...
阅读全文…
在长度检查方面,数据库使用的是varchar,长度是按字符个数算的,比如“abcdef”算6个字符,“一二三四五六”也算六个字符。而php的strlen方法算出并不一样,strlen("abcdef")是6,而strlen("一二三四五六")是18。这样检查起来就麻烦了。
php处理中文字符数,可以用mb_strlen() ,具有编码无关性,看下面的演示:
mb_strlen('abcdef','utf-8') == 6
mb_strlen('一二三四五六','utf-8') ==6
另外中文的截取也需要mb_substr()也是编码无关性,看演示
<?php
echo mb_substr('曾经年少爱追梦一心只想往前飞', 0, 7, 'utf-8');
...
阅读全文…