现在的工作主要是操作MySQL数据库,由于企业短信的特殊性,使得数据库记录非常庞大,因此提MySQL 数据库性能就非常重要了,下面这篇文章写的非常不错,特地转过来学习学习。
本文探讨了提高MySQL 数据库性能的思路,并从8个方面给出了具体的解决方法。
阅读全文
本文探讨了提高MySQL 数据库性能的思路,并从8个方面给出了具体的解决方法。
阅读全文
示例一:
日本软件银行的老板孙正义,当年创业有一次,他站在一个装苹果的箱子上对他仅有的一名员工演说他2个多小时的宏图大业,下面的那位员工吓到第二天不敢来上班,我认为他老板是疯子
示例二:
有一次,在阿里巴巴还没成立的时候,马云在一家酒馆,喝得有点醉,手足舞动这对着众人游说他的中国黄页,大家都认为他有问题,第二年他真的赚钱了
示例三:
李彦宏帮门户做搜索很赚钱,决定做自己的门户搜索,结果在深圳的会议被否决,最后摔手机,人家才勉强答应了,之后实时十月的闪电计划,最后恨他变成爱他了
等等,很多很多类似的,在IT界像历史一样重演,。。。。。。
总结:
上天眷顾有蓝图的人不是干实际事的人,他们给你一个梦想,干实际事情的人去实现了,他们也就成功了,但是没有这种人的推动,谁都成就不了什么,所以,这样的人才是牛B的人。
最牛B的人是知道产品的蓝图和摸样,实现对他们来说不再重要,因为实现往往是最容易的,并能让其扎扎实实的实现,在实现的过程中不断去完善和修正,他们都实现了自己的梦,他们也就是一个舵手,不是划桨的人,为此,有人笑他们不会划船,笑他们是疯子,傻子,偏执狂,单是上天往往会眷顾或者特别看好这样的人,往往在他们自己的执拗中不断学习和成长,最好他们都成功了,上帝笑了,人们惊讶了,那个人可能哭笑参半,踌躇满志,人们纳闷了,但其中的酸甜苦辣也只有他本人才知道,因为成功的条件缺一不可,当代社会只有偏执狂才能生存,只有偏执狂才能成功,只有偏执狂才能过关斩将,他们才是真正的领航者,他们才是最善于看到变化,拥抱变化的弄潮儿,他们成功了,我们看见了,O(∩_∩)O哈哈~!
总结人:向东
2009-10-17
日本软件银行的老板孙正义,当年创业有一次,他站在一个装苹果的箱子上对他仅有的一名员工演说他2个多小时的宏图大业,下面的那位员工吓到第二天不敢来上班,我认为他老板是疯子
示例二:
有一次,在阿里巴巴还没成立的时候,马云在一家酒馆,喝得有点醉,手足舞动这对着众人游说他的中国黄页,大家都认为他有问题,第二年他真的赚钱了
示例三:
李彦宏帮门户做搜索很赚钱,决定做自己的门户搜索,结果在深圳的会议被否决,最后摔手机,人家才勉强答应了,之后实时十月的闪电计划,最后恨他变成爱他了
等等,很多很多类似的,在IT界像历史一样重演,。。。。。。
总结:
上天眷顾有蓝图的人不是干实际事的人,他们给你一个梦想,干实际事情的人去实现了,他们也就成功了,但是没有这种人的推动,谁都成就不了什么,所以,这样的人才是牛B的人。
最牛B的人是知道产品的蓝图和摸样,实现对他们来说不再重要,因为实现往往是最容易的,并能让其扎扎实实的实现,在实现的过程中不断去完善和修正,他们都实现了自己的梦,他们也就是一个舵手,不是划桨的人,为此,有人笑他们不会划船,笑他们是疯子,傻子,偏执狂,单是上天往往会眷顾或者特别看好这样的人,往往在他们自己的执拗中不断学习和成长,最好他们都成功了,上帝笑了,人们惊讶了,那个人可能哭笑参半,踌躇满志,人们纳闷了,但其中的酸甜苦辣也只有他本人才知道,因为成功的条件缺一不可,当代社会只有偏执狂才能生存,只有偏执狂才能成功,只有偏执狂才能过关斩将,他们才是真正的领航者,他们才是最善于看到变化,拥抱变化的弄潮儿,他们成功了,我们看见了,O(∩_∩)O哈哈~!
总结人:向东
2009-10-17
如何实时查看mysql当前连接数?
1、查看当前所有连接的详细资料:
./mysqladmin -uadmin -p -h10.140.1.1 processlist
2、只查看当前连接数(Threads就是连接数.):
./mysqladmin -uadmin -p -h10.140.1.1 status
、查看当前所有连接的详细资料:
mysqladmin -uroot -proot processlist
D:\MySQL\bin>mysqladmin -uroot -proot processlist
+-----+------+----------------+---------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+----------------+---------+---------+------+-------+------------------+
| 591 | root | localhost:3544 | bbs | Sleep | 25 | | |
| 701 | root | localhost:3761 | | uery | 0 | | show processlist |
+-----+------+----------------+---------+---------+------+-------+------------------+
2、只查看当前连接数(Threads就是连接数.):
mysqladmin -uroot -proot status
D:\MySQL\bin>mysqladmin -uroot -proot status
Uptime: 2102 Threads: 3 Questions: 15531 Slow queries: 0 Opens: 0 Flush tab
les: 1 Open tables: 61 Queries per second avg: 7.389
3、修改mysql最大连接数:
打开my.ini,修改max_connections=100(默认为100)。
今天有一台mysql服务器突然连接数暴增,并且等待进程全部被锁...因为问题解决不当,导致被骂...OTL
总结:以后要快速定位错误,布置解决方案
登录到mysql客户端后,使用status命令也能获得thread连接数以及当前连接的id
或者用
show full processlist
看一下所有连接进程,注意查看进程等待时间以及所处状态 是否locked
如果进程过多,就把进程打印下来,然后查看
mysql -e 'show full processlist;' > 111
查找非locked的进程,一般就是当前执行中卡死,导致后面的进程排队的原因。
另外,修改mysql最大连接数的方法:
编辑MySQL(和PHP搭配之最佳组合)配置文件
my.cnf 或者是 my.ini
在[MySQL(和PHP搭配之最佳组合)d]配置段添加:
max_connections = 1000
保存,重启MySQL(和PHP搭配之最佳组合)服务。
然后用命令:
MySQL(和PHP搭配之最佳组合)admin -uroot -p variables
输入root数据库账号的密码后可看到
| max_connections | 1000 |
1、查看当前所有连接的详细资料:
./mysqladmin -uadmin -p -h10.140.1.1 processlist
2、只查看当前连接数(Threads就是连接数.):
./mysqladmin -uadmin -p -h10.140.1.1 status
、查看当前所有连接的详细资料:
mysqladmin -uroot -proot processlist
D:\MySQL\bin>mysqladmin -uroot -proot processlist
+-----+------+----------------+---------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+----------------+---------+---------+------+-------+------------------+
| 591 | root | localhost:3544 | bbs | Sleep | 25 | | |
| 701 | root | localhost:3761 | | uery | 0 | | show processlist |
+-----+------+----------------+---------+---------+------+-------+------------------+
2、只查看当前连接数(Threads就是连接数.):
mysqladmin -uroot -proot status
D:\MySQL\bin>mysqladmin -uroot -proot status
Uptime: 2102 Threads: 3 Questions: 15531 Slow queries: 0 Opens: 0 Flush tab
les: 1 Open tables: 61 Queries per second avg: 7.389
3、修改mysql最大连接数:
打开my.ini,修改max_connections=100(默认为100)。
今天有一台mysql服务器突然连接数暴增,并且等待进程全部被锁...因为问题解决不当,导致被骂...OTL
总结:以后要快速定位错误,布置解决方案
登录到mysql客户端后,使用status命令也能获得thread连接数以及当前连接的id
或者用
show full processlist
看一下所有连接进程,注意查看进程等待时间以及所处状态 是否locked
如果进程过多,就把进程打印下来,然后查看
mysql -e 'show full processlist;' > 111
查找非locked的进程,一般就是当前执行中卡死,导致后面的进程排队的原因。
另外,修改mysql最大连接数的方法:
编辑MySQL(和PHP搭配之最佳组合)配置文件
my.cnf 或者是 my.ini
在[MySQL(和PHP搭配之最佳组合)d]配置段添加:
max_connections = 1000
保存,重启MySQL(和PHP搭配之最佳组合)服务。
然后用命令:
MySQL(和PHP搭配之最佳组合)admin -uroot -p variables
输入root数据库账号的密码后可看到
| max_connections | 1000 |
据 wordpress 官方报道,WordPress 2.9 第一个 Beta 版本很有可能在今年10月底发布。如果 WordPress 2.9 测试顺利的话,会在今年11月底或12月初发布正式版本。
以下为 WordPress 官方原文报道:
We are aiming to release the first beta version of 2.9 around the end of October, once we have put the finishing touches on the new features, and then we switch to full on beta testing mode and your help and feedback will be very much appreciated. During the beta program will push out new builds for automated upgrades regularly and once we feel that a suitable level of stability has been achieves we will release a release candidate, and we hope to be able to make the final release 2.9 build available in either late November or early December.
据园子初步了解,此次 WordPress 2.9 会带来以下新功能:
1.加入新的图像编辑器
在 WordPress 2.9 版本中,会在后台加入简单的图像编辑功能,你可以通过简单的操作来对图像进行修改。
2.评论垃圾回收站功能
在 WordPress 2.9 里,你可以将一些无用的评论删除,这些被删除的评论可以暂时保存在回收站中,直到过期才会彻底删除,你可以通过 wp_config.php 文件设置过期期限。
3.新增 excerpt 过滤器功能
WordPress 2.9 版本新增加了两个过滤器来调整 excerpt(the_excerpt())摘要部分,通过修改返回值的方式达到调整摘要字符串长度和more链接的文字,你只需在 function.php 文件中添加一些代码即可。
最后园子提供 WordPress 2.9 最新测试版本供大家下载试用,请点此下载 WordPress 2.9 Beta 。
需要提醒你的是,这个版本只是测试版本,仅供测试使用。
以下为 WordPress 官方原文报道:
We are aiming to release the first beta version of 2.9 around the end of October, once we have put the finishing touches on the new features, and then we switch to full on beta testing mode and your help and feedback will be very much appreciated. During the beta program will push out new builds for automated upgrades regularly and once we feel that a suitable level of stability has been achieves we will release a release candidate, and we hope to be able to make the final release 2.9 build available in either late November or early December.
据园子初步了解,此次 WordPress 2.9 会带来以下新功能:
1.加入新的图像编辑器
在 WordPress 2.9 版本中,会在后台加入简单的图像编辑功能,你可以通过简单的操作来对图像进行修改。
2.评论垃圾回收站功能
在 WordPress 2.9 里,你可以将一些无用的评论删除,这些被删除的评论可以暂时保存在回收站中,直到过期才会彻底删除,你可以通过 wp_config.php 文件设置过期期限。
3.新增 excerpt 过滤器功能
WordPress 2.9 版本新增加了两个过滤器来调整 excerpt(the_excerpt())摘要部分,通过修改返回值的方式达到调整摘要字符串长度和more链接的文字,你只需在 function.php 文件中添加一些代码即可。
最后园子提供 WordPress 2.9 最新测试版本供大家下载试用,请点此下载 WordPress 2.9 Beta 。
需要提醒你的是,这个版本只是测试版本,仅供测试使用。
追女孩非常有效的23条短信阅读全文
target=new Date(2009,9,17,14,00,00);
today=new Date();
JavaScript里面的Date对象时间日期都是从0开始的。
就像Java/C++里面的数组坐标一样。
分别用0,1.....11来对应实际月份的一月,二月......十二月。
五月31号可以用以下表达式来表达:
var date = new Date(2008,5-1,31);
以后多注意这个问题就行了。
today=new Date();
JavaScript里面的Date对象时间日期都是从0开始的。
就像Java/C++里面的数组坐标一样。
分别用0,1.....11来对应实际月份的一月,二月......十二月。
五月31号可以用以下表达式来表达:
var date = new Date(2008,5-1,31);
以后多注意这个问题就行了。
采用 secondary index 查询仍然是要比用 primary key 查询来的快很多
innodb 的 clustered index 是把 primary key 以及 row data 保存在一起的,而 secondary index 则是单独存放,然后有个指针指向 primary key。因此,需要进行 count(*) 统计表记录总数时,利用 secondary index 扫描起来,显然更快。
SELECT COUNT(id) FROM table;
这是原文http://bugs.mysql.com/bug.php?id=19271
我提问:
如果在前端加memcache,直接存count总数[增加,删除等做加减,曾经大家有没有人采用过这种方案加速count(*)的?呵呵
回答:
count存在memcache,会涉及一个准确性的问题。有可能会在memcache中丢失。 如果丢失的情况还是要跑数据库的!
Secondary Index就和普通的B-Tree索引差不多了,只不过在Secondary Index的所有Leaf Nodes上面同时包含了所指向数据记录的主键信息,而不是直接指向数据记录的位置信息。
http://www.ourmysql.com/archives/284
innodb 的 clustered index 是把 primary key 以及 row data 保存在一起的,而 secondary index 则是单独存放,然后有个指针指向 primary key。因此,需要进行 count(*) 统计表记录总数时,利用 secondary index 扫描起来,显然更快。
SELECT COUNT(id) FROM table;
这是原文http://bugs.mysql.com/bug.php?id=19271
我提问:
如果在前端加memcache,直接存count总数[增加,删除等做加减,曾经大家有没有人采用过这种方案加速count(*)的?呵呵
回答:
count存在memcache,会涉及一个准确性的问题。有可能会在memcache中丢失。 如果丢失的情况还是要跑数据库的!
Secondary Index就和普通的B-Tree索引差不多了,只不过在Secondary Index的所有Leaf Nodes上面同时包含了所指向数据记录的主键信息,而不是直接指向数据记录的位置信息。
http://www.ourmysql.com/archives/284
你是否常觉得头重重的或记忆力衰退呢? 阅读全文
以下是通过shell命令(find . -type f | xargs cat | grep URL= | cat)获得的URL地址:
URL=http://doubao.javaeye.com/blog/212519
URL=http://hi.baidu.com/zeorliu/blog/item/fe3f13d73bfb87d7a144df8e.html
URL=http://mryufeng.javaeye.com/blog/105090
URL=http://www.baidu.com/baidu?word=LVS&tn=ylmf_2_dg&ie=utf-8
URL=http://www.linux-l7sw.org/
URL=http://www.haproxy.org/
URL=http://huangxx.javaeye.com/blog/179088
URL=http://cn.haproxy.org/
URL=http://baike.baidu.com/view/645050.htm
URL=http://blog.ohyeap.cn/?p=11
URL=http://lse.sourceforge.net/io/aio.html
URL=http://www.linuxvirtualserver.org/whatis.html
URL=http://pl.atyp.us/content/tech/servers.html
URL=http://www.audiomulch.com/~rossb/code/lockfree/
URL=http://www.kegel.com/c10k.html
URL=http://www.javaeye.com/topic/443080?page=1
URL=http://www.javaeye.com/topic/443080?page=2
URL=http://www.javaeye.com/topic/443080?page=3
URL=http://bulk.fefe.de/scalability/
URL=http://hi.baidu.com/zeorliu/blog/item/fe3f13d73bfb87d7a144df8e.html
URL=http://mryufeng.javaeye.com/blog/105090
URL=http://www.baidu.com/baidu?word=LVS&tn=ylmf_2_dg&ie=utf-8
URL=http://www.linux-l7sw.org/
URL=http://www.haproxy.org/
URL=http://huangxx.javaeye.com/blog/179088
URL=http://cn.haproxy.org/
URL=http://baike.baidu.com/view/645050.htm
URL=http://blog.ohyeap.cn/?p=11
URL=http://lse.sourceforge.net/io/aio.html
URL=http://www.linuxvirtualserver.org/whatis.html
URL=http://pl.atyp.us/content/tech/servers.html
URL=http://www.audiomulch.com/~rossb/code/lockfree/
URL=http://www.kegel.com/c10k.html
URL=http://www.javaeye.com/topic/443080?page=1
URL=http://www.javaeye.com/topic/443080?page=2
URL=http://www.javaeye.com/topic/443080?page=3
URL=http://bulk.fefe.de/scalability/
通常情况下,我们利用浏览器来上传文件的时候,常常会限制文件的大小,例如上传图片,自定义头像这些东东,如果让文件数据上传到服务器端,再来判断文件的大小提示用户文件过大,这里会有一些网络的延迟,更重要的是浪费了带宽,今天在研究这个问题的时候,找到了在本地利用javascript来判断文件大小,从而带来了很好的客户端体验,又节约了相当大的带宽,以下是代码片段:
HTML表单代码片段:
代码
这里对IE6和Firefox3分别用了image标签的synsrc属性和files数组,从而解决了浏览器获取待上传文件大小的这个问题。在firefox3中,files这个数组的项还有另外一个方法getAsBinary方法,可以获取该文件的二进制流,这样可以对文件进行Hash计算,在一起需要上传需要Hash作为文件名的场合下也是非常有用的,IE6下需要用到ActiveX控件ADO(浏览器自带)也能获取二进制流,不过这里可能会被浏览器的安全设置截获到而无法正常使用。
HTML表单代码片段:
代码
<form id="uploadfile" name="uploadfile" class="" target="upload" action="http://web.qq.com/cgi-bin/cface_upload" method="POST" enctype="multipart/form-data">
<input id="custom_face" name="custom_face" type="file">
<input name="f" type="hidden" value="fallback">
<input name="go" type="button" value="Upload File" onclick="Upload();">
</form>
javascript代码片段:
function Upload()
{
var form=document.getElementById("uploadfile");
var face=document.getElementById("custom_face");
//ReadFFFile(face);
var fileSize=GetFileSize(face);
if(fileSize>1024*1024)
{
alert("文件不能大于1M");
}
else
{
form.submit();
};
};
function GetFileSize(fileObj)
{
var image=new Image();
var filePath=fileObj.value;
image.dynsrc=filePath;
var fileSize=image.fileSize||0;
if(fileSize==0)
{
fileSize=fileObj.files[0].fileSize;
};
return fileSize;
};
<input id="custom_face" name="custom_face" type="file">
<input name="f" type="hidden" value="fallback">
<input name="go" type="button" value="Upload File" onclick="Upload();">
</form>
javascript代码片段:
function Upload()
{
var form=document.getElementById("uploadfile");
var face=document.getElementById("custom_face");
//ReadFFFile(face);
var fileSize=GetFileSize(face);
if(fileSize>1024*1024)
{
alert("文件不能大于1M");
}
else
{
form.submit();
};
};
function GetFileSize(fileObj)
{
var image=new Image();
var filePath=fileObj.value;
image.dynsrc=filePath;
var fileSize=image.fileSize||0;
if(fileSize==0)
{
fileSize=fileObj.files[0].fileSize;
};
return fileSize;
};
这里对IE6和Firefox3分别用了image标签的synsrc属性和files数组,从而解决了浏览器获取待上传文件大小的这个问题。在firefox3中,files这个数组的项还有另外一个方法getAsBinary方法,可以获取该文件的二进制流,这样可以对文件进行Hash计算,在一起需要上传需要Hash作为文件名的场合下也是非常有用的,IE6下需要用到ActiveX控件ADO(浏览器自带)也能获取二进制流,不过这里可能会被浏览器的安全设置截获到而无法正常使用。