MySQL数据库优化总结

对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要。一般来说,要保证数据库的效率,要做好以下四个方面的工作:数据库设计、sql语句优化、数据库参数配置、恰当的硬件资源和操作系统,这个顺序也表现了这四个工作对性能影响的大小。下面我们逐个阐明:

一、数据库设计

适度的反范式,注意是适度的

我们都知道三范式,基于三范式建立的模型是最有效保存数 据的方式,也是最容易扩展的模式。我们在开发应用程序时,设计的数据库要最大程度的遵守三范式,特别是对于OLTP型的系统,三范式是必须遵守的规则。当 然,三范式最大的问题在于查询时通常需要join很多表,导致查询[……]

继续阅读

Tags:

Zend Framework 中配合 Zend_Config 实现路由

Zend Framework 的路由转发功能不仅可以让 url 变得简洁易记,而且非常对 SEO 非常有益,zf 的路由转发有着多样的配置方法,能实现各种转发需求。

随着站点复杂程度的增加,我们会有越来越多的转发规则,而将这些规则独立到一个文件中,是一个非常好的习惯。本文讲解的是将转发规则存放在单独的配置文件里面,然后配合 Zend_Config 实现转发的方法。

对于直接在程序中实现转发设置,手册上有简单的示例:

PHP:
<?php
$router = $controller->getRouter(); // 获取路由
$route = new Zend[……]

继续阅读

Zend Framework layout 使用详细教程

我是用zend studio创建的,目录:

3285938878121984385

 

一、index.php 内容:

 

<?php

// Define path to application directory
defined(‘APPLICATION_PATH’)
|| define(‘APPLICATION_PATH’, realpath(dirname(__FILE__) . ‘/../application’));

// Define application environment
defined(‘APPLICATION_ENV’)
|| d[……]

继续阅读

php

PHP的UTF-8 BOM引起的 Cannot send session cookie – headers already sent by…

今天,在使用notepad++新制作一个程序时,总是提示警告,并且session不起作用。

1
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at E:\Fukun\Php\wap_cailing\modify.php:1) in E:\f\Php\wap_cailing\chklogin.php on line 2

2[……]

继续阅读

Tags:
php

创建高安全性PHP网站的几个实用要点

大家都知道PHP已经是当前最流行的Web应用编程语言了。但是也与其他脚本语言一样,PHP也有几个很危险的安全漏洞。所以在这篇教学文章中,我们将大致看看几个实用的技巧来让你避免一些常见的PHP安全问题。

技巧1:使用合适的错误报告

一般在开发过程中,很多程序员总是忘了制作程序错误报告,这是极大的错误,因为恰当的错误报告不仅仅是最好的调试工具,也是极佳的安全漏洞检测工具,这能让你把应用真正上线前尽可能找出你将会遇到的问题。

当然也有很多方式去启用错误报告。比如在 php.in 配置文件中你可以设置在运行时启用

启动错误报告


  1. error_reporting(E_A[……]

继续阅读

Tags:
php

php冒泡排序和快速排序

php冒泡排序和快速排序

01
<?php

02
$arr array(12,1,5,88,35,0,18,100,50,21,28,7,9,9.5);

03

04
//交换两值

05
function swap(&$m, &$n){

06
    $temp $m;

07
    $m $n;

[……]

继续阅读

Tags:
php

php版本的快速排序

下面是三个php版的快速排序,第一种效率低但最简单最容易理解,第二个是算法导论上提供的单向一次遍历找中值方法,第三种是双向遍历找中值经典快排算法。三组算法实现和比较如下:
方法一:该方法比较直观,但损失了大量的空间为代价,使用了效率较低的merge函数。在三种方法中效率最低。最坏情况下算法退化为(O(n*n))

退化原因后文说明。

01
function quick_sort($array) {

02
    if(count($array) <= 1) return $array;

[……]

继续阅读

Tags:

关于凯立德导航无法搜星或者搜星慢需要修改端口及速率的方案和软件

凯立德各版本均可通过本软件修改软件端口、速率。系统音量调节、修正退出软件后时间误差8小时等bug。使用过程:操作均在PC中进行,修改后再拷入PPC替换原文件。
1。将本软件拷入目录“NaviOne”中,双击运行,将文件“NaviOne.dll”(或NaviOneSCH.dll,视版本而论)拖放到软件左侧图标上,在编辑框中输入修改的内容按回车,完成后退出即可。
2。将本软件拷入目录“NaviOne\NaviResFile”中,将文件“NaviConfig.dll”端口、速率修改一致。在该文件中还可修改凯立德各配置参数,现将其分享。

本文非原创,为本人从网上下载测试,使用可行,拿来分享的[……]

继续阅读

php

三款免费的PHP加速器:APC、eAccelerator、XCache比较

一、PHP加速器介绍

PHP加速器是一个为了提高PHP执行效率,从而缓存起PHP的操作码,这样PHP后面执行就不用解析转换了,可以直接调用PHP操作码,这样速度上就提高了不少。

Apache中使用mod_php的请求、响应执行流程:

1、Apache接收请求。
2、Apache传递请求给mod_php。
3、mod_php定位磁盘文件,并加载到内存中。
4、mod_php编译源代码成为opcode树。
5、mod_php执行opcode树。

PHP加速器相应的就是第四步,它的目的就是防止PHP每次请求都重复编译PHP代码,因为在高访问量的网站上,大量的编译往往没[……]

继续阅读

Tags:
php

phpize学习二

Compiling shared PECL extensions with phpize

Sometimes, using the pecl installer is not an option. This could be because you’re behind a firewall, or it could be because the extension you want to install is not available as a PECL compatible package, such as unreleased extensions from SVN. If you[……]

继续阅读

Tags: