文件的优势:速度快 缺点:移植性差(没发现读取指定文件需要指定目录吗?万一目录变动不会又要改了.) 数据库:移植性较好(不管怎么移,只需要更改下连接参数即可.) 缺点:没有直接读取文件的速度快.
你可以把连接的方法写进类里,让它形成方法比如
class something {
global $db;
function web_db(){
$this-db = $this-database(); //把连接方法存如属性里
}
function database($server = 'localhost',$root = 'root',$pass = '****'){
......//这里写你的连接方法,及其关联表操作
...//其他方法
} //class end
在你的页面程序中这样写
require_once "web_common.class.php";//包进你的类文件
$mysql = new something;
在你需要数据查询或写入的时候只要调用 $mysql-db;就好了
如上你可以看出,无论你有多少客户请求数据库,而数据库只在载入页面时连接一次而已,调用 $mysql-db 只是请求程序,请求方法而已,没有请求数据库.第一,数据库连接查询只有一次;第二无形中也加快了页面的载入速度.
记住,你做网页不是给一个人两个人用的,而是很很很多个,为了保证数据库的正常使用,在多请求的情况下依然能很好工作,这是个很好的办法.
最后close是可写可不写的,因为当mysql没有请求时,它会自动关闭.
①.、直接读文件相比数据库查询效率更胜一筹,而且文中还没算上连接和断开的时间.
关于mysql处理百万级以上的数据时如何提高其查询速度的方法
最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法.
①.、应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而进行全表扫描.
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
可以这样查询:
select id from t where num=10
union all
select id from t where name like '%c%'
若要提高效率,可以考虑全文检索.
对于连续的数值,能用 between 就不要用 in 了:
可以改为强制查询使用索引:
应改为:
select id from t where name like 'abc%'
①.0、不要在 where 子句中的"="左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引.
①.1、在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使 用,并且应尽可能的让字段顺序与索引顺序相一致.
这类代码不会返回任何结果集,但是会消耗系统资源的,应改成这样:
create table #t(...)
select num from a where num in(select num from b)
用下面的语句替换:
select num from a where exists(select 1 from b where num=a.num)