PDO(PHP Data Object) 是PHP 5新出来的东西,在PHP 6都要出来的时候,PHP 6只默认使用PDO来处理数据库,将把所有的数据库扩展移到了PECL,那么默认就是没有了我们喜爱的php_mysql.dll之类的了
【PDO是啥】
PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MS SQL Server、SQLite,同样的,我们必须借助 ADOdb、PEAR::DB、PHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够我们直接用C/C++写的扩展斜率高捏?所以嘛,PDO的出现是必然的.
1先找到配置文件php.ini中以下几项扩展
Read more…
用explain 来执行检验sql 例如
explain select * from a
+—-+————-+——-+——-+——————-+———+———+——-+——+——-+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+—-+————-+——-+——-+——————-+———+———+——-+——+——-+
| 1 | SIMPLE | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | const | 1 | |
+—-+————-+——-+——-+——————-+———+———+——-+——+——-+
第四列 type
这列很重要,显示了连接使用了哪种类别,有无使用索引.
从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和ALL
Read more…
一直想试试mysql的新功能,可惜我的mysql服务器存在太多有用的网站数据库,不敢轻举妄动,今天,无意间发现mysql最新般发布了,而且mysql的官方网站也有中文的了,呵呵,看来mysql以后对中文的支持可能会好点了!
Mysql5.5.9最新下载地址http://dev.mysql.com/downloads/mysql/
禁止启用binlog
禁止方法: vi /etc/my.cnf把里面的
#log-bin=mysql-bin
#binlog_format=mixed
注释掉,重启mysql服务即可.
删除binlog方法:
登录mysql
reset master;
这样以来所有binlog日志都被清除,并且索引重新回到1,例如mysql-bin.000001
在MySQL4中,是已经开始支持全文检索(索引)的了。但是只是对英文支持全文检索。
由于英文在书写上的特殊性,使得分词算法相对中文来说,简单得多。一般来说,我们可以通过单词与单词之间的空格,以及标点符号来完成这个分词过程。
但是就中文来说,就没有那么简单。MySQL无法对中文做出正确的分词,假设有如下英文句子:
“Hello world! Hello PHP!”
通过上面提及的方法,可以很简单的把这个句子分词为:
1 Hello
2 world
3 PHP
我们再来看看中文的句子:
“你好世界,你好PHP!”
按照英文的算法,分词如下:
1 你好世界
2 你好PHP
显然是不能满足我们的需要的。 Read more…
下载地址:http://jaist.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.7RC1.tar.gz
configure参数:
–with-pam=[PAM_INSTALLATION_PREFIX]
指定pam头文件安装位置
–with-pam-mods-dir=[MODULE_DIRECTORY]
指定将pam_mysql.so安装的位置
–with-mysql=[MYSQL INSTALLATION_PREFIX]
指定mysql的头文件和库安装的位置,如果不指定,会在以下位置寻找
/usr
/usr/local
/usr/mysql
/opt/mysql
–with-openssl=[OPENSSL_INSTALLATION_PREFIX]
指定已安装的openssl的头和库文件位置,如果不指定会在如下位置寻找: Read more…
一、 主从配置的原理:
Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个
Mysql instance(我们称之 Slave)。在 Master 与 Slave
之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master
端。
Read more…
MYSQL CPU 占用 100% 的现象描述
早上帮朋友一台服务器解决了 Mysql cpu 占用 100% 的问题。稍整理了一下,将经验记录在这篇文章里.
朋友主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程 (mysqld-nt.exe) CPU 占用率总为 100% 高居不下。此主机有10个左右的 database, 分别给十个网站调用。据朋友测试,导致 mysqld-nt.exe cpu 占用奇高的是网站A,一旦在 IIS 中将此网站停止服务,CPU 占用就降下来了。一启用,则马上上升。
Read more…
最近在Linux Ubuntu 服务器上編譯MySQL時通不過,停留在編譯sql/sql_yacc.cc文件處,很長 時間都通不過,有網友說編譯了三個多小時都通不過,我真的很佩服他的耐心了。我也 遇到了同樣的問題,還有過錯誤的判斷。通過與清華BBS的網友交流,我相信找到了問題 所在。
有網友說用ports安裝就沒有什問題,但並沒有進一步說明 到底是因為什。看了一下ports中對mysql-server的說明,原來用ports編譯mysql需要 一個包:libtool-1.3.3。
請看FreeBSD對libtool這個包的描述 Read more…