- 博客(271)
- 收藏
- 关注
原创 代码调整技术(Code-Tuning Techniques)
调整技术提高代码运行速度的方法,同时也对如何减小代码的资源占用给出了一些建议。程序性能通常同代码的速度和资源占用有关,但减小代码资源占用更主要的是通过对类和数据结构的重新设计来实现,而非代码调整。代码调整更多的是指小规模的修改,而非大范围的设计变更。 代码调整似乎同 “重构” 有些类似,但重构是去改善程序内部结构。而代码调整所讲述的内容,可将其称为 “反重构” 而非 “改善内部结构” 或许更为恰当。这种改变是以牺牲程序内部结构的某些特性来换取更高的性能。就定义而言,这种说法并无不妥。即使所做改变没
2014-01-18 23:34:28 1431
原创 php:自带方法验证邮箱、URL、IP是否合法
以前用PHP验证邮箱、URL、IP是否合法都是通过自己写正则来实现,但是有时候脑子发昏,可能会写出一个不是完全正确的正则,导致验证出错,今天发现原来PHP本身自带了验证邮箱、URL、IP是否合法的函数
2014-01-09 14:00:03 1488
转载 mysql:四舍五入函数
FLOOR(X)返回不大于X的最大整数值。mysql> select FLOOR(1.23); -> 1mysql> select FLOOR(-1.23); -> -2注意返回值被变换为一个BIGINT! CEILING(X)返回不小于X的最小整数值。mysql> select CEILING(1.23); -
2014-01-09 13:30:20 871
原创 mysql:21个性能优化最佳实践之19[选择正确的存储引擎]
选择正确的存储引擎 在 MySQL 中有两个存储引擎 MyISAM 和 InnoDB,每个引擎都有利有弊。酷壳以前文章《MySQL: InnoDB 还是 MyISAM?》讨论和这个事情。 MyISAM 适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都无法操作直到读操作完成。另外,M
2014-01-09 13:21:33 625
原创 mysql:21个性能优化最佳实践之17[拆分大的 DELETE 或 INSERT 语句]
拆分大的 DELETE 或 INSERT 语句 如果你需要在一个在线的网站上去执行一个大的 DELETE 或 INSERT 查询,你需要非常小心,要避免你的操作让你的整个网站停止相应。因为这两个操作是会锁表的,表一锁住了,别的操作都进不来了。 Apache 会有很多的子进程或线程。所以,其工作起来相当有效率,而我们的服务器也不希望有太多的子进程,线程和数据库链接,这是极
2014-01-09 13:18:20 2120
原创 mysql:21个性能优化最佳实践之16[垂直分割]
垂直分割 “垂直分割”是一种把数据库中的表按列变成几张表的方法,这样可以降低表的复杂度和字段的数目,从而达到优化的目的。(以前,在银行做过项目,见过一张表有100多个字段,很恐怖) 示例一:在Users表中有一个字段是家庭地址,这个字段是可选字段,相比起,而且你在数据库操作的时候除了个人信息外,你并不需要经常读取或是改写这个字段。那么,为什么不把他放到另外一张表中呢
2014-01-09 13:12:54 723
原创 mysql:21个性能优化最佳实践之14[把IP地址存成UNSIGNED INT]
很多程序员都会创建一个 VARCHAR(15) 字段来存放字符串形式的IP而不是整形的IP。如果你用整形来存放,只需要4个字节,并且你可以有定长的字段。而且,这会为你带来查询上的优势,尤其是当你需要使用这样的WHERE条件:IP between ip1 and ip2。 我们必需要使用UNSIGNED INT,因为 IP地址会使用整个32位的无符号整形。 而你的查询,你可以使用 INET_ATON() 来把一个字符串IP转成一个整形,并使用 INET_NTOA() 把一个整形转成一个字符串IP。在PHP
2014-01-09 13:10:07 1392
原创 php:netbeans+wampserver2.2e实现xdebug调试
注:xdebug是通用的调试插件,不仅可在php语言中使用,Java等语言也可以参照官网(xdebug.org)或者论坛等资料来配置实现。附近:wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b.exe 【点击下载】(提取密码:hu8x)这里提供的wamp是集合了xdebug插件的,在安装好之后,在php.ini里对应添加相关的
2014-01-07 18:26:15 1017
原创 mysql:21个性能优化最佳实践之6[不要使用ORDER BY RAND()]
千万不要使用 ORDER BY RAND() 想打乱返回的数据行?随机挑一个数据?真不知道谁发明了这种用法,但很多新手很喜欢这样用。但你确不了解这样做有多么可怕的性能问题。 如果你真的想把返回的数据行打乱了,你有N种方法可以达到这个目的。这样使用只让你的数据库的性能呈指数级的下降。这里的问题是:MySQL会不得不去执行RAND()函数(很耗CPU时间),而且这是为了
2014-01-07 12:43:45 876
原创 mysql:21个性能优化最佳实践之5[在Join表的时候使用相当类型的列,并将其索引]
如果你的应用程序有很多 JOIN 查询,你应该确认两个表中Join的字段是被建过索引的。这样,MySQL内部会启动为你优化Join的SQL语句的机制。而且,这些被用来Join的字段,应该是相同的类型的。例如:如果你要把 DECIMAL 字段和一个 INT 字段Join在一起,MySQL就无法使用它们的索引。对于那些STRING类型,还需要有相同的字符集才行。
2014-01-07 12:34:49 1089
原创 mysql:21个性能优化最佳实践之4[为搜索字段建索引]
索引并不一定就是给主键或是唯一的字段。如果在你的表中,有某个字段你总要会经常用来做搜索,那么,请为其建立索引吧。
2014-01-07 12:28:05 879
原创 mysql:21个性能优化最佳实践之3[当只要一行数据时使用 LIMIT 1]
当你查询表的有些时候,你已经知道结果只会有一条结果,但因为你可能需要去fetch游标,或是你也许会去检查返回的记录数。在这种情况下,加上 LIMIT 1 可以增加性能。这样一样,MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据。
2014-01-07 12:04:37 1512
原创 mysql:21个性能优化最佳实践之2[EXPLAIN 你的 SELECT 查询]
使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等。
2014-01-07 11:59:15 1019
原创 mysql:21个性能优化最佳实践之1[为查询缓存优化你的查询]
大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。
2014-01-07 11:53:45 1136
原创 mysql:多行查询结果合并成一行
mysql函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行。
2013-12-24 09:38:51 2251
原创 php;查看邮件是否已被阅读
当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读。这里有段代码片段能够显示对方IP地址记录阅读的实际日期和时间。
2013-11-26 10:08:21 1492
原创 php:从网页中提取关键字
能够轻松的从网页中提取关键字。$meta = get_meta_tags('http://www.emoticode.net/');$keywords = $meta['keywords'];// Split keywords$keywords = explode(',', $keywords );// Trim them$keywords = array_map( 'trim',
2013-11-26 10:04:35 1007
原创 php:查找页面上的所有链接
使用DOM,你可以轻松从任何页面上抓取链接,代码示例如下: $html = file_get_contents('http://www.example.com');$dom = new DOMDocument();@$dom->loadHTML($html);// grab all the on the page$xpath = new DOMXPath($dom);$hrefs =
2013-11-26 10:02:41 574
原创 php:从服务器上下载&保存一个远程图片
当你在搭建网站时,从远程服务器下载某张图片并且将其保存在自己的服务器上,这一操作会经常用到。代码如下:$image = file_get_contents('http://www.url.com/image.jpg');file_put_contents('/images/image.jpg', $image); // where to save jpg
2013-11-26 09:59:22 823
原创 php:移除Remove Microsoft Word HTML Tag
当你使用Microsoft Word会创建许多Tag,比如font,span,style,class等。这些标签对于Word本身而言是非常有用的,但是当你从Word粘贴至网页时,你会发现很多无用的Tag。因此,下面的这段代码可帮助你删除所有无用的Word HTML Tag。 function cleanHTML($html) { // // Removes all FONT and
2013-11-26 09:56:52 826
转载 对新手有用的JavaScript开发小建议
1. 用数组长度截取数组我们都知道,对象都是通过使用JavaScript引用的,但这并不是唯一的准则,请看下面的检验案例:1234var arr1 = arr2 = [1, 2, 3]; //Change arr1arr1 = [];// arr2 will still be [1
2013-09-01 17:37:56 624
转载 MYSQL中统计查询结果总行数的便捷方法
MYSQL的关键词 :SQL_CALC_FOUND_ROWS 查看手册后发现此关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制)例如: SELECT SQL_CALC_FOUND_ROWS tid FROM cdb_threads WHERE fid=14 LIMIT 1,10;假设满足条件的有1000条,这里返回10条。立即使用 SE
2013-07-24 10:17:54 1574
转载 MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes
今天在用Navicat导入SQL文件时报错:MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes查了一下,原来是MySQL默认读取执行的SQL文件最大为16M,我这个SQL文件260M,所以执行不过去解决方法:在MySQL安装目录下找到文件my.ini,搜索[m
2013-07-22 11:32:50 589
原创 php:修改NetBeans默认字体
修改NetBeans默认字体。 默认情况下,NetBeans编辑器和Output字体很难看。编辑器中字体可以通过修改配置解决。但是Output字体无法通过配置进行修改。可以通过修改JDK的默认配置达到目的,不过这样所有的Java GUI程序都会受影响。
2013-07-02 13:20:03 1105
原创 PHP:在Yii Framework中扩展使用PHPMailer发送邮件
首先,你得去Yii官方下载mailer扩展组件,官方扩展链接:http://www.yiiframework.com/extension/mailer/。 由于PHPMailer是不断更新并且针对PHP不同版本也有对应的版本,你可以根据需要,可以去PHPMailer官网下载所需要的版本,然后把mailer文件夹下的phpmailer文件夹中的内容替换了。这个扩展配置十分方便,
2013-06-16 17:44:59 2699
原创 代码详查中的自尊心
进行详查的目的是发现设计或者代码中的缺陷,而不是探索替代方案,或者争论谁对谁错,其目的绝不应该是批评作者的设计或者代码。 对于作者来说,详查的过程应该是正面,在这一过程中的团队参与使程序得到了明显改善,对所有参与者都是一个学习的过程。 这一过程不应该让作者认为团队里面某些人是白痴,或者以为自己应该另谋高就。
2013-06-10 13:59:36 639
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人