首页 > 编程技术 > php

MySQL事务数据库(InnoDB类型)的安装方法

发布时间:2016-11-25 15:20

MySQL数据库分二种类型,一种是传统的数据表格式,一种是支持事务处理的数据表格式(InnoDB,BDB,其中以InnoDB为主),下面我介绍一下关于MySQL事务处理数据库的安装及使用方法
你先要去下载一下Mysql max版的安装程序,下载地址:www.mysql.com
按常规的方法进行安装
安装完成后,启动mysqlinWinMySQLadmin
再退出
运行
mysqlinmydqld-nt --remove
mysqlinmysqld-max-nt --install
以上二行是去掉不支持事务处理的mysql服务,改成支持mysql事务处理的服务
然后在c:下建一个ibdata目录及iblogs目录,当然名字可以不一样,记住这二个名字及盘符,以后要用到,你也可以不建在C盘,然后,打开c:winnt或c:windows目录下的my.ini,在最后添加:[code]
innodb_data_file_path = ibdata1:2000M;ibdata2:2000M
innodb_data_home_dir = c:ibdata
set-variable = innodb_mirrored_log_groups=1
innodb_log_group_home_dir = c:iblogs
set-variable = innodb_log_files_in_group=3
set-variable = innodb_log_file_size=30M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_log_arch_dir = c:iblogs
innodb_log_archive=0
set-variable = innodb_buffer_pool_size=80M
set-variable = innodb_additional_mem_pool_size=10M
set-variable = innodb_file_io_threads=4
set-variable = innodb_lock_wait_timeout=50
[/code]
其中
innodb_data_file_path = ibdata1:2000M;ibdata2:2000M
这一行中的2000M可以自己改成200m,看你盘的容量大小,mysql推荐10G及以上的硬盘空间最好用这样的设置;
以下这一行
innodb_data_home_dir = c:ibdata
也可以改成你自己起的目录,主要是看你自己在刚才建的目录在哪里啦
按照以上的方法,你已经安装好了mysql的事务数据库,不过你要是按照mysql手册上的方法安装,把上面的一段配制放到my.cnf是去的话,可是会出错哦
好了,现在让我们试试看是不是安装完成了,启动apache,或iis,在服务里启动mysql的服务,打开phpmyadmin,输入:SHOW variables like "have_%"
你要是看到下面的结果,那说明你安装成功了
[code]
Variable_name    Value    
have_bdb       YES    
linux loadavg 算法
发表人:biti_rainy
今天读linux source code关于cpu load 的计算方法,同时在google上搜索到处参考,晕乎了半天,终于弄明白cpu load 的计算方法了,并不是简单的移动算术平均。
对于linux来说,采样计算load时间间隔为5秒,这都是在source code里面定义的固定数字,其采样结构通过动态内存文件系统 /proc/loadavg 可以动态的得到适时数据,其他工具的输出,比如 uptime / top/sar 等都是读该内存数据所产生的。我们在这里主要考究kernel的算法。
对于5秒的间隔,是动态地采样cpu状态数据,也就是run queue size ,这包括正在cpu中running的进程数量以及在cpu等待队列里面的进程数量。对于linux来说,实际上会计算1分钟、5分钟、15分钟的移动平均。为此首先我们要介绍linux 里面定义的3个常量:
#define EXP_1 1884 /* 1/exp(5sec/1min) */
#define EXP_5 2014 /* 1/exp(5sec/5min) */
#define EXP_15 2037 /* 1/exp(5sec/15min) */
三个常量分别表示1/5/15分钟的常量,计算方法是:
1884 = 2048/(power(e,(5/(60*1)))) /* e = 2.71828 */
2014 = 2048/(power(e,(5/(60*5))))
2037 = 2048/(power(e,(5/(60*15))))
我们假定前一时刻按常量1884计算的load为 load1(t-1),当前采样run queue size 为 rq1,则当前load1(t) = ((load1(t-1) * 1884) + rq1 * (2048 - 1884))/2048
同理可以5分钟和15分钟移动平均的算法分别为 load5(t) = ((load5(t-1) * 2014) + rq1 * (2048 - 2014))/2048和load_15(t) = ((load15(t-1) * 2037) + rq1 * (2048 - 2037))/2048
由此可以看出,移动平均间隔越大,当前run queue size 对移动平均的影响趋向减小。
至于为什么取这个数,涉及到微积分方面的知识了,这样做出的图象更平滑。

树型论坛递归加速
一般的论坛都递归整个表
如果仅递归result,那么速度会加快不少,况且访问result是访问服务器内存.
我们一般通过下面的语句使游标移动
while($row=mysql_fetch_array($res))
其原理是当mysql_fetch_array($res)每执行一次则游标自动下移,直到结束为止
但是递归result时,我们只有一个result,当游标不定时,我们无法知道当前游标记录是否符合我们的要求
php提供了一个函数让用户自己指定游标位置
bool mysql_data_seek ( resource result_identifier, int row_number)
这个函数大家应该能看懂吧
下面我来讲讲我的思路.
为实现论坛分页,表结构设计如下:
表名:newestbbs(最新帖子 以最后回复时间排序)
结构:
id 只记录根帖的id
time 如果没有回帖,则为根帖提交时间,否则为最后回帖提交时间
表名:bbs
结构:
    id 帖子本身的id
    fathered 父帖id
    rootid    根帖id
    time        发帖时间
    ……….其它field
思路:
先由newestbbs得到最新帖列表(比如每页列表20条根帖 select id from newestbbs order by time limit 页数-1,20)
得到result后从整个bbs表里得到并显示所有result的根帖
    while(bbs=mysql_fetch_array($result))
    {
        select * from bbs where rootid=bbs['id’] order by time //(由此得到第二个result,命名为res)
        $root=mysql_fetch_array(res)
        显示根帖
        dispreplybbs($root['id’],$res) //递归显示此帖所有回帖
    }
递归函数如下:
     function dispreplybbs($id,$mysqlres)
     {
     for($i=0;$i<mysql_num_rows($mysqlres);$i++)
     {
    mysql_data_seek($mysqlres,$i) //将游标移动到指定位置
<?php
// simple post method
// version 1.0 by Andrus (andrus@vnet.ee)
// Disclaimer:
// everyone can change or use this code however and wherever they want ;)
// NB! For posting to Microsoft platform webservers you may need to change newlines " " to " "
// Microsoft always breaks standards ...
    // send out "browser" headers
    function send_headers ($fp) {
        fputs ($fp, "Accept: */* ");
        fputs ($fp, "Accept-Language: en ");
        fputs ($fp, "Connection: Keep-Alive ");
        fputs ($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98) ");
    }
    // post data and return reply
    function post_data ($host, $url, $data) {
        $fp = @fsockopen ($host, 80, $errno, $errstr, 120);
        $ret = "";
           if (strncasecmp ($url, "http://", 7) == 0) $url = substr ($url, 7);
        $p = strpos ($url, '/');
        if (empty ($p)) {
       $req = "/";
        } else {
       $req = substr ($url, $p);
        }
        if ($fp) {
       fputs ($fp, "POST $req HTTP/1.0 ");
       send_headers ($fp);
实战PHP/GTK(转载)
刁馋 发表于 2002-2-19 15:25 PHP编程 ←返回版面     
以前PHP被认为只能用来编写服务器端的CGI程序,如果说PHP能够开发Windows下的GUI(图形用户界面)程序,你相信吗?最近,PHP的开发小组成功开发出了捆绑GTK+的PHP,那么就可以开发Windows下的GUI程序了。
一、建立PHP/GTK运行环境:
其实GUI程序和普通的PHPCGI程序没有什么区别,不过是PHP/GTK程序由GTK的类来生成GUI界面而已,他们同样是开放源代码,靠PHP来解析建立窗口。如果你已经建立好了PHP的调试环境,那么安装PHP/GTK环境比较简单:
1、下载php_gtk.dll(这个dll文件用于解析PHP源程序里面的GTK代码),下载后将其解压到PHP的扩展(extension)目录中;
2、下载其他PHP/GTK的dll文件(一共6个),将他们解压缩到Windows的system32目录里面;
3、打开php.ini,在扩展设置部分“Windows Extensions”最下面加入“extension=php_gtk.dll”的语句,建议先备份php.ini,避免修改失败使得建立好的PHP运行环境作废;
现在就建立好了PHP/GTK的运行环境了。当然,你也可以不作第二步,而改为在每个PHP/GTK程序源代码的第一行加入“dl('php_gtk.dll')”来动态加载GTK的支持。
如果你还没有建立PHP运行环境,那么安装要更加简单:
1、下载整个PHP/GTK的捆绑支持包,然后将他们解压缩到c盘的PHP4目录下面;
2、将winnt目录下面的dll文件拷贝到Windows的system32目录中,将php.ini文件拷贝到Windows的目录中;
建立好了PHP/GTK的运行后,可以用命令行模式的PHP来运行一个PHP/GTK程序:在运行中输入“c:php4php -q gtkprogrampath”,其中“c:php4php”改为PHP.EXE的路径,“gtkprogrampath”就是PHP/GTK程序的路径。比如:“c:php4php -q c:php4sampleshello.php”将会运行PHP/GTK运行包中附带的例子“hello world”程序。
二、编译PHP/GTK程序:
如果你作出一个PHP/GTK的应用程序,还需要对方的电脑建立PHP的运行环境并且使用PHP命令行模式来解析才可以执行的话,那就过于复杂了。那么怎么样才可以编译一个PHP/GTK的程序呢?经过一番搜索,笔者发现了PHPCompiler这个软件。
PHPCompiler由www.deskcode.com开发(http://www.deskcode.com/phpcompiler),可以将PHP编译成为EXE可执行文件,内置了PHP的支持,如果你要编译一个PHP/GTK程序,必须建立PHP/GTK的运行环境(参照前面的步骤)。要编译一个PHP/GTK程序的步骤如下:
标签:[!--infotagslink--]

您可能感兴趣的文章: