首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

大家看看我的文本数据库系统 (phpsql)

1、以PHP文件为载体、数组变量存储数据;
2、SQL语句操作;
3、与MySQL类似相关方法。

只有个初步;
如果掌声多于口哨声,我就继续做下去,
做好了再送给大伙;
否则就算了。

欢迎大家测试、批评。

演示:
http://www.humen168.com/tmp/txtsql/index.html
昵称: lwg888  时间: 2004-02-07 17:20:00
支持,正想了解这方面的东东!!!
加油!!
昵称: funy  时间: 2004-02-07 17:21:00
有点像

phpMyAdmin

啊???
昵称: funy  时间: 2004-02-07 17:22:00
建了字段但是无法确定其数据类型和大小????
昵称: funy  时间: 2004-02-07 17:24:00
��,�@也能做出�
昵称: kingsunsoft  时间: 2004-02-07 17:25:00
数据全部以字串存储,不分大小、类型。
与XML一样。
昵称: lwg888  时间: 2004-02-07 17:26:00
加油!!!!
叹服ING!!!!
昵称: funy  时间: 2004-02-07 17:30:00
到时给我一个!!

CODE:
[Copy to clipboard]
<?php
[email]funyflying@163.com[/email]
?>
谢了!!
昵称: funy  时间: 2004-02-07 17:32:00
好我强烈支持……
昵称: wts  时间: 2004-02-07 17:34:00
add oil~
不过文本数据库的好像也见过不少了~~
昵称: lfireboy  时间: 2004-02-07 17:44:00
不错啊....
昵称: unclemoon  时间: 2004-02-07 17:48:00
支持

但是...偶测试失败了...
插入了两条记录,但浏览显示记录数为0
昵称: Jodoz  时间: 2004-02-07 17:49:00
��~
不知有�]有用其他程序�y���^?
昵称: SiegfriedDK  时间: 2004-02-07 17:54:00
做备份,分段备份,100W数据/200M数据备份。这个才有意思
昵称: xltxlm  时间: 2004-02-07 18:06:00


QUOTE:
最初由 Jodoz 发布
[B]支持

但是...偶测试失败了...
插入了两条记录,但浏览显示记录数为0 [/B]
你用哪个数据库哪个数据表测试,
我试一下!

找到错误在什么地方,我去修改.
昵称: lwg888  时间: 2004-02-07 18:09:00


QUOTE:
最初由 xltxlm 发布
[B]做备份,分段备份,100W数据/200M数据备份。这个才有意思 [/B]
备份MySQL吗?
昵称: lwg888  时间: 2004-02-07 18:11:00
鼓掌。。。
昵称: 猪丽叶  时间: 2004-02-07 18:14:00
备份MySQL吗?

Y,还要能恢复
昵称: xltxlm  时间: 2004-02-07 18:17:00


QUOTE:
最初由 xltxlm 发布
[B]备份MySQL吗?

Y,还要能恢复 [/B]
我只有笨办法.
前辈你可有好的思路???
昵称: lwg888  时间: 2004-02-07 18:18:00
想做产品是白费劲
昵称: grow-easy\  时间: 2004-02-07 18:20:00


QUOTE:
最初由 grow-easy\ 发布
[B]想做产品是白费劲 [/B]
毕竟是文本数据库;
期望值不要太高.
存储小型数据是上上之选,
搞产品不是还有MySQL老大在后面撑腰吗?
昵称: lwg888  时间: 2004-02-07 18:23:00
期待你的sql解析部分的出现~hoho
昵称: fengme  时间: 2004-02-07 19:03:00
插入“"”出现转义
插入“%”记录紊乱。

加油~
昵称: fengme  时间: 2004-02-07 19:05:00


QUOTE:
最初由 fengme 发布
[B]插入“"”出现转义
插入“%”记录紊乱。

加油~ [/B]
谢谢!!
昵称: lwg888  时间: 2004-02-07 19:33:00
支持
昵称: crazy80跳蚤  时间: 2004-02-07 19:36:00
不错啊,定一下,再给点掌声!啪啪~!~~~~
昵称: cn8cn  时间: 2004-02-07 19:55:00
厉害。。。。佩服。。。
昵称: jaryer  时间: 2004-02-07 19:58:00
无意义的东西,文本数据库文件多,设计不好的话速度慢,加了sql的语法更慢
昵称: wwwc  时间: 2004-02-07 20:00:00


QUOTE:
最初由 wwwc 发布
[B]无意义的东西,文本数据库文件多,设计不好的话速度慢,加了sql的语法更慢 [/B]
说文件多我不同意:
Mysql一个表有3个文件,文本数据库一个表只要一个文件,并放在相应目录下,也可放在统一目录下,管理方便。
至于速度慢,承认。
文本数据库主要解决没有数据库支持的空间,或小型数据不想用牛刀Mysql来存储的情况,且随着电算机硬件的发展速度越来越不是主要问题;

总之:需要就有用,不需要就没用。
昵称: lwg888  时间: 2004-02-07 20:11:00
数据多了你就知道什么是痛苦了,不说别的,sql你怎么写??一个order by,和a=''' and b=''就把你的速度"提高"了
昵称: wwwc  时间: 2004-02-07 21:10:00


QUOTE:
最初由 wwwc 发布
[B]数据多了你就知道什么是痛苦了,不说别的,sql你怎么写??一个order by,和a=''' and b=''就把你的速度"提高"了 [/B]
偶觉得你这么说狠没有意义诶~~~~
难道你想把一个文本数据库做的跟mySQL一样吗?
楼主已经说过了,这个玩意是为应用而生的,
总不会有人用文本数据库做几W数据的排序或者模糊搜索吧?
昵称: aeiou  时间: 2004-02-07 21:59:00
一个字:服!!
昵称: 水若寒  时间: 2004-02-07 22:34:00
啪啪啪啪啪啪啪
昵称: deimy  时间: 2004-02-07 22:46:00
效率方面可以����用二�M制指定位置�x��
比由�^到尾快很多的�f

�浞菘梢钥��]直接��出成sql�Z句吧
昵称: SiegfriedDK  时间: 2004-02-08 00:37:00


QUOTE:
最初由 SiegfriedDK 发布
[B]效率方面可以����用二�M制指定位置�x��
比由�^到尾快很多的�f

�浞菘梢钥��]直接��出成sql�Z句吧 [/B]
用二�M制指定位置�x��还需请教你,我不知怎样指定位置写;
至于备份直接将文件拷下来就得了,因为是PHP文件,可以直接使用,当然也可以输出为SQL语句.
昵称: lwg888  时间: 2004-02-08 09:13:00
你去看看zchain的留言板代�a吧
我都是�⒖妓�的
昵称: SiegfriedDK  时间: 2004-02-08 10:38:00


QUOTE:
最初由 SiegfriedDK 发布
[B]你去看看zchain的留言板代�a吧
我都是�⒖妓�的 [/B]
url是what?
昵称: lwg888  时间: 2004-02-08 10:44:00
支持!・!!!!!!!!!!!!!
昵称: shelly0577  时间: 2004-02-08 10:50:00
数据量一大就over掉了。。。
昵称: wm_chief  时间: 2004-02-08 13:07:00
做这样的系统并不难,主要是读取的速度要快。我以前发表过一个文本数据表,没有做成数据库的形式,而且功能也不是很多。我这个数据表最大的特点就是读取速度和记录量无关。
昵称: 步川内酷  时间: 2004-02-08 13:52:00


QUOTE:
最初由 步川内酷 发布
[B]做这样的系统并不难,主要是读取的速度要快。我以前发表过一个文本数据表,没有做成数据库的形式,而且功能也不是很多。我这个数据表最大的特点就是读取速度和记录量无关。 [/B]
要讲普通读取速度,我这个是最快的了,因为我是用php文件存储数据,读取文件时就已经生成了数据;
至于读取速度和记录量无关我还真要向你请教了,不知思路如何
昵称: lwg888  时间: 2004-02-08 14:29:00
文本的好像php5自己搞了一个,我没用过
但是应该支持搂主啊
昵称: yes22  时间: 2004-02-08 14:42:00


QUOTE:
最初由 lwg888 发布
[B]要讲普通读取速度,我这个是最快的了,因为我是用php文件存储数据,读取文件时就已经生成了数据;
至于读取速度和记录量无关我还真要向你请教了,不知思路如何 [/B]
文件的指针定位,我以前也自己做过的,比如该文件有
username password email的话你可以先指定长度
如ussername(15),password(32) email(32)
插入一组数据的时候就把他的长度转换为该长度(没怎么长的用 空格代替 ),取数据的时候就用
$seek=$row*(15+32+32)
fseek($fp,$seek,SSSEEK_SET)转到指定的行数,更新的时候就用
"r+"可读可写的方式大开(非常省资源的),其他的自己想想把
偶以前做的一个流言本就一个文件,数据文件到了20M都没事
昵称: wwwc  时间: 2004-02-08 14:43:00
呵呵,不错~~
昵称: coldwind  时间: 2004-02-08 14:43:00
写sql无必要(速度不行),真的想做好的化给大家做个好的文本数据库操作类就行了,我说的方法虽然浪费了些硬盘空间,但对内存消耗是非常小的
昵称: wwwc  时间: 2004-02-08 14:46:00


QUOTE:
最初由 wwwc 发布
[B]写sql无必要(速度不行),真的想做好的化给大家做个好的文本数据库操作类就行了,我说的方法虽然浪费了些硬盘空间,但对内存消耗是非常小的 [/B]
不用SQL在操作时实在不方便;
比如select一组数据又要where 又要order by 又要limit,函数的参数设置非常麻烦。
还有你说用指针定位,规定每个字段的长度,不好使:
比如text类型的字段,你定它多长呢?
昵称: lwg888  时间: 2004-02-08 15:03:00


CODE:
[Copy to clipboard]
<?
include"text_db.php";     //包含操作的类
$db=new text_db("gbook"); //新建立一个文本数据库操作的类
$db->set_var(15,32,32);   //设置每个字段的长度(自己可以加索引如username,password)
$db->limit_row(155,15);   //设置数据库从155行开始取出15条记录
while($data=$db->fetch())
     
print_r($data);      //显示取出的记录
$db->insert($username,$passwod,$email) or die("数据库插入失败"); //插入
$db->del(133);            //删除133行
$db->close();             //关闭操作的指针
?>
那里不方便?
昵称: wwwc  时间: 2004-02-08 15:15:00
鼓掌
昵称: ctbxz  时间: 2004-02-08 15:25:00
总的来讲,做东西,你就会进步!!!!!!
HOHO!!
昵称: funy  时间: 2004-02-08 15:31:00
不玩了,回去了,哈哈,你试试把的数据文件写到20M以上,看看速度和你电脑用的内存:d:d
下次偶来写个文本数据库操作的类吧,看谁的好用,安全,速度快,内存消耗最小
昵称: wwwc  时间: 2004-02-08 15:33:00


QUOTE:
最初由 wwwc 发布
[B]

CODE:
[Copy to clipboard]
<?
$db
->del(133);            //删除133行
?>
那里不方便? [/B]
很多时候删除的条件并不是133行这么简单;
尤其是select数据

再说你读取数据时还是要file()全部文件, 然后explode()数据,根本用不了文件指针,不是更慢.

讨论一下,莫动气.
昵称: lwg888  时间: 2004-02-08 15:33:00
不是�@�����}
�@位大哥你看看�W上有多少sql程序
要全改成文本�����煲�多少精神, 看�l�X子最快�牡�
而�W上的sql空�g又要多少$$$, 看�l的�X包最快乾掉

有�c�]有和好�c不好是�纱a子的事
不去做第一次又如何改良?
我看你那�|�|也快不了多少
也就是比人家少了���Z句分析而已
而且就技�g含量你和人家也不成任何�Ρ�
不竟大家是�榻��Q不同���}而�淼�

lwg你要的在�@, 用了就不怕效率低了
http://www.zchain.net
昵称: SiegfriedDK  时间: 2004-02-09 22:36:00


QUOTE:
最初由 wwwc 发布
[B]

CODE:
[Copy to clipboard]
<?
include"text_db.php";     //包含操作的类
$db=new text_db("gbook"); //新建立一个文本数据库操作的类
$db->set_var(15,32,32);   //设置每个字段的长度(自己可以加索引如username,password)
$db->limit_row(155,15);   //设置数据库从155行开始取出15条记录
while($data=$db->fetch())
     
print_r($data);      //显示取出的记录
$db->insert($username,$passwod,$email) or die("数据库插入失败"); //插入
$db->del(133);            //删除133行
$db->close();             //关闭操作的指针
?>
那里不方便? [/B]
楼主,我也觉得sql语句的实现不是非常容易。
其实即时写出了sql语句,最后还是需要转成这位大哥说得形式。
出于效率考虑,不如使用这种情况。


至于orderby,不知可不可以写个索引文件?格式简单些就可以了……

加油
昵称: fengme  时间: 2004-02-10 10:18:00
请问楼主,这个和phpmyadmin有什么不同呢???

我是新手~~~~~~~~~~~
昵称: wang9842  时间: 2004-02-10 10:50:00


QUOTE:
最初由 lwg888 发布
[B]很多时候删除的条件并不是133行这么简单;
尤其是select数据

再说你读取数据时还是要file()全部文件, 然后explode()数据,根本用不了文件指针,不是更慢.

讨论一下,莫动气. [/B]
在读取数据的时候是否可以这样呢
如ussername(15),password(32) email(32)

select * from table where password='$password';

打开文件,后移动文件指针15字节,读取32字节,判断是否相等

是:前移15+32字节读取15+32+32  输出结果;
否:继续后移32+15字节,读取32字节判断;

如此循环下去

我对文件指针不是很了解  不知道 是否是这样操作  以及 他的速度会怎么样
:blowzy: :blowzy: :blowzy: :blowzy: :blowzy:
昵称: 蓝色地平线  时间: 2004-02-10 11:07:00
回答fengmen:

<?
$db->limit_row(155,15);   //设置数据库从155行开始取出15条记录
$db->del(133);            //删除133行
?>


    1、从155行开始取出15条记录的依据是什么?难道不通过where来逐条比较吗?当然建立索引文件是好的办法,但还是要全部读入索引文件进行where;指针根本派不上用场。
    2、删除133行只有指定了id才能做到,如果要删除id>10以上的所有数据就无能为力了。
    结论:指针只能用在select或delete某一条数据。

   以上拙见,不知对否。或大家有什么更好的办法。

附:我的数据库结构是这样的:

CODE:
[Copy to clipboard]
<?PHP 
$phpsql_fieldname
=array('id','name','jkjkl123'); 
$phpsql_autofield='id'
$phpsql_fields[]=array('id'=>'1','name'=>'fds','jkjkl123'=>'fds"hghghfg'); 
$phpsql_fields[]=array('id'=>'2','name'=>'fdfdsfds','jkjkl123'=>'fdsfdsf'); 
$phpsql_fields[]=array('id'=>'3','name'=>'fdfdsjhjhhgfhg','jkjkl123'=>'gfhgf'); 
?>
昵称: lwg888  时间: 2004-02-10 11:31:00
回答wang9842:
phpmyadmin是mysql数据库管理器,我的是文本数据库phpsql管理器,界面相似,功能相似。区别在于所服务的数据库不同。
昵称: lwg888  时间: 2004-02-10 11:35:00
方法有很多, 但这个方法的确不太好!

大家研究一下sqlite吧~~
昵称: fivebull  时间: 2004-02-10 11:36:00
回答蓝色地平线:
你说的方法还是要遍及所有记录,虽然通过指针的移动减少数据读取最,但我认为指针移动的计算过程本身就是一个费资源的过程,总体益处不大。
昵称: lwg888  时间: 2004-02-10 11:39:00


QUOTE:
最初由 fivebull 发布
[B]方法有很多, 但这个方法的确不太好!

大家研究一下sqlite吧~~ [/B]
比如说:
方法之一是...???
方法之二是...???

虚心请教。
昵称: lwg888  时间: 2004-02-10 11:41:00
不�e不�e真不�e!
昵称: lfox  时间: 2004-02-10 11:44:00


QUOTE:
最初由 lwg888 发布
[B]比如说:
方法之一是...???
方法之二是...???

虚心请教。 [/B]
不好的地方一:用PHP文件做载体 (可以用序列化)

还有始终是效率问题.

我这用过好多次!一般是序列化再加上base64(不过占用空间更多, 有什么用?不知道~暂是只是混淆视听而已),  只用来存不太敏感的config, 和常用的变量~~
昵称: fivebull  时间: 2004-02-10 11:55:00
PHP文件做载体有什么不好?
序列化是什么意思?
请指教!!~~

另外,我实际上是用.inc.php为载体
昵称: lwg888  时间: 2004-02-10 11:59:00
顶!
昵称: bjcctv  时间: 2004-02-10 12:12:00
昵称: sendfeng  时间: 2004-02-10 12:29:00
好呀。。。支持,,做完后共享一下啊!!研究研究。。。。。
不知数据结构是怎么样!!
我之前也想过这个。。表结构参考了foxbase。。。
昵称: simonxzq  时间: 2004-02-10 12:34:00


QUOTE:
最初由 simonxzq 发布
[B]好呀。。。支持,,做完后共享一下啊!!研究研究。。。。。
不知数据结构是怎么样!!
我之前也想过这个。。表结构参考了foxbase。。。 [/B]
附:我的数据库结构是这样的:

CODE:
[Copy to clipboard]
<?PHP 
$phpsql_fieldname
=array('id','name','jkjkl123'); 
$phpsql_autofield='id'
$phpsql_fields[]=array('id'=>'1','name'=>'fds','jkjkl123'=>'fds"hghghfg'); 
$phpsql_fields[]=array('id'=>'2','name'=>'fdfdsfds','jkjkl123'=>'fdsfdsf'); 
$phpsql_fields[]=array('id'=>'3','name'=>'fdfdsjhjhhgfhg','jkjkl123'=>'gfhgf'); 
?>
昵称: lwg888  时间: 2004-02-10 12:36:00


QUOTE:
最初由 lwg888 发布
[B]不用SQL在操作时实在不方便;
比如select一组数据又要where 又要order by 又要limit,函数的参数设置非常麻烦。
还有你说用指针定位,规定每个字段的长度,不好使:
比如text类型的字段,你定它多长呢? [/B]
text类型就保存一个指针,指向相应的文件来保存。
昵称: simonxzq  时间: 2004-02-10 12:37:00


QUOTE:
最初由 simonxzq 发布
[B]text类型就保存一个指针,指向相应的文件来保存。 [/B]
英雄所见!!
我也是这么想的
昵称: lwg888  时间: 2004-02-10 12:38:00
哇,真是好东西呀。

感谢出个版本吧,让大家给你测试一下。
昵称: xbrid  时间: 2004-02-10 12:41:00


QUOTE:
最初由 xbrid 发布
[B]哇,真是好东西呀。

感谢出个版本吧,让大家给你测试一下。 [/B]
目前正处于测试阶段,做好了坚决发布!
昵称: lwg888  时间: 2004-02-10 12:43:00
强,提供原码啊
昵称: heimayi  时间: 2004-02-10 12:52:00


QUOTE:
最初由 heimayi 发布
[B]强,提供原码啊 [/B]
时间未到!
昵称: lwg888  时间: 2004-02-10 12:54:00
能不能帮我做一个,我的E-MAIL:LEE411@SINA.COM
昵称: vienna  时间: 2004-02-10 13:23:00


QUOTE:
最初由 vienna 发布
[B]能不能帮我做一个,我的E-MAIL:LEE411@SINA.COM [/B]
到发布的时候不要错过了.
昵称: lwg888  时间: 2004-02-10 13:27:00


QUOTE:
最初由 simonxzq 发布
[B]text类型就保存一个指针,指向相应的文件来保存。 [/B]
的确是个好办法。

支持楼主!

使用定长字段等固定的格式确实比较容易实现。
但是性能上…………

记得楼上的一位提到过20M的数据文件依然很快。不知道是什么原理。

应该不是全部读入内存中吧?
昵称: fengme  时间: 2004-02-10 13:47:00
不知道为什么快!!
他又不肯说!
昵称: lwg888  时间: 2004-02-10 13:49:00
不过楼主,看你的代码是:
生成php文件。
include文件
调用变量。

是不是?

如果是,相当于file啊。不是非常的省资源哦。
昵称: fengme  时间: 2004-02-10 13:56:00
不如那位大哥说得使用seek定位来得好呢。毕竟需要一个php解析的过程。

至于你问我的那种limit如何定位,我认为可以根据条件生成一个内存中的索引。然后调用。
那些代码不是我写的,具体情况我也不知道,不好意思。

加油。为了穷人而战。需要帮助尽管说话~
昵称: fengme  时间: 2004-02-10 14:00:00


QUOTE:
最初由 lwg888 发布
[B]PHP文件做载体有什么不好?
序列化是什么意思?
请指教!!~~

另外,我实际上是用.inc.php为载体 [/B]
序列化就是将变量变成字符串表示~就算是一个对象也可以序列化!

SESSION就是序列化的一个应用
昵称: fivebull  时间: 2004-02-10 14:04:00
我就知道序列化就是把一些相关信息保存为文件,以作永久保存。
还有就是我想数据结构方面还是以文本的格式比较好,分开表头和数据区,表头以固定大小保存如:最大记录,字段宽度,类型,字段名,索引名,删除标记,数据库名等信息。也因此记录长度相等。而limit这个问题比较烦。。我之前是用正则来作全文检索,这样能应该减少系统运算,提高效率。
这种结构和你的相比的好处就是占用额外的存储空间小,删除恢复容易,问题就是比较静态,不能动态分配(如果用动态的话,可能要很大的系统资源)
昵称: simonxzq  时间: 2004-02-10 14:31:00
文本的不是很感兴趣,没注意楼主是用php程序文件保存数据的,不知道你想过没,php他编译(就是他运行的时候很编译的)假如你文件10M了,你想想编译占不占内存吧??,还有运行的时候耗不好内存??你的数据都是保存到数组(里的),你试试就知道了
昵称: wwwc  时间: 2004-02-10 14:52:00
我本以为用PHP保存数据的最好的选择,因为使用方便;
不过在同大家一番舌战之后,对用指针定位非常感兴趣,正在思考用指针定位操作的较好方式。
昵称: lwg888  时间: 2004-02-10 15:07:00
排序是个比较麻烦的问题。


如果是linux的话,倒是可以利用外部命令来解决。如:sort等……

不行,就弄个索引吧。

不知道有没有什么好办法解决。
昵称: fengme  时间: 2004-02-10 15:34:00


QUOTE:
最初由 fengme 发布
[B]排序是个比较麻烦的问题。


如果是linux的话,倒是可以利用外部命令来解决。如:sort等……

不行,就弄个索引吧。

不知道有没有什么好办法解决。 [/B]
索引是个好办法,  自己对文本数据库 不是很了解  前段日子 看到公司一位师姐以前做的一个.就是用了索引.用起来 还是比较方便的
昵称: 蓝色地平线  时间: 2004-02-10 15:39:00
继续努力
昵称: liro2002  时间: 2004-02-10 16:50:00
我也告诉一下我的经验:
在我一次做简繁切换程序时,须要一个转换表,我分别用两种方法来做,一种是像你那样把整个表都放到一个变量里,然后在需要时就用include()把文件包函进来使用。
另一种 就是把他变成一个文本文件,需要时就用fopen()和fread()得到
结果很明显:用fopen()的一会就搞定了,一秒都不用,用include的,N秒都打不开。。。。有兴趣的自己可以试试。。呵呵
这就足以证明楼主将会存在的问题。
昵称: simonxzq  时间: 2004-02-10 17:32:00
非常感谢simonxzq与各位大虾!!
昵称: lwg888  时间: 2004-02-10 17:55:00
潜水员为你顶呀;)
昵称: igenus  时间: 2004-02-10 21:11:00
现时用PHP做文本数据不符合实际,数据一大就麻烦,够POWER的话就去改PHP的源代码,加强它的文本操作函数,呵呵
昵称: cwjisgenius  时间: 2004-02-11 13:07:00
在没有找到更好的办法之前,我将按照wwwc的思路重新设计
昵称: lwg888  时间: 2004-02-11 14:51:00
可以研究下下,顶
昵称: books  时间: 2004-02-11 15:00:00
你还准备设计SQL查询吗?
昵称: fengme  时间: 2004-02-11 17:53:00
相信楼主多文本的操作一定相当熟悉,有个问题想请教,
就是如何能够在上万个文件中查找一个指定的字符串,普通的方法就是读取文件然后搜索每个文件的内容,这样就会很好资源,而且也很浪费时间,有没有什么好的办法即能提高效率又能达到搜索的目的,还有一个问题,为什么进行第一次搜索的时间会特别长,
比如我在10000个帖子中搜索一个只出现一次的字符串,第一次要30秒。第二次只要4秒,第三次就只要1秒多一点,以后就都只要一秒多,这是为什么,希望楼主能帮帮忙,解决一下以上问题
昵称: 111223344  时间: 2004-02-11 17:54:00


QUOTE:
最初由 fengme 发布
[B]你还准备设计SQL查询吗? [/B]
早做好了!
只是SQL查询页没有链接到结果显示页
昵称: lwg888  时间: 2004-02-11 18:26:00
回111223344:
首先我是一只极品菜鸟,对PHP只沾了点边.
至于提高效率的问题可能做索引文件是可行的办法
第一次查的慢后来快可能是系统的功能,其它不知
昵称: lwg888  时间: 2004-02-11 18:31:00
期待你完成。好运~
昵称: fengme  时间: 2004-02-12 13:58:00
hao !值得学习!
昵称: phplzc  时间: 2004-02-12 15:22:00
真的是很不错阿
好东东
昵称: libk  时间: 2004-02-12 16:32:00
顶阿
昵称: libk  时间: 2004-02-12 16:35:00
upup
昵称: libk  时间: 2004-02-12 16:37:00
佩服啊 牛人
昵称: xlonger  时间: 2004-02-12 18:10:00
正在按wwwc的思路改写文件的读写方式,相信完成后,速度与易用性都是不错的。
昵称: lwg888  时间: 2004-02-12 18:15:00


QUOTE:
最初由 111223344 发布
[B]相信楼主多文本的操作一定相当熟悉,有个问题想请教,
就是如何能够在上万个文件中查找一个指定的字符串,普通的方法就是读取文件然后搜索每个文件的内容,这样就会很好资源,而且也很浪费时间,有没有什么好的办法即能提高效率又能达到搜索的目的,还有一个问题,为什么进行第一次搜索的时间会特别长,
比如我在10000个帖子中搜索一个只出现一次的字符串,第一次要30秒。第二次只要4秒,第三次就只要1秒多一点,以后就都只要一秒多,这是为什么,希望楼主能帮帮忙,解决一下以上问题 [/B]
具体原因不太清楚,应该是系统问题,但我想过程是这样的,每一次搜索时,系统都先检查最近访问过的文件,系统会把这些文件按使用频率排序,然后就是访问缓存,有的话就在缓存里取出,没有话再去读取文件,并将相关内容存放到缓存里,以供下次使用。

这样就会出现你说的情况了。。。


呵呵。。不知我这样解释对不对,想知嘛就问下一个好像叫“cul316”的大侠吧。。呵呵。。他应该知。。。
昵称: simonxzq  时间: 2004-02-14 03:05:00
其实大家说的方法很多了,关键是楼主你自己要实践下的才知道哪个方法是适合你的www.listask.com
昵称: fings  时间: 2012-07-22 16:25:05