Php 在包含30000条记录的mysql表中查找数据
我使用PHP和MySQL运行Apache服务器 我想做一个简单的搜索引擎,查找包含特定字符串的文章 我有30000份文件,分页(我的意思是,总共30000份文件) 我认为有两种方法可以完成这项任务Php 在包含30000条记录的mysql表中查找数据,php,mysql,database,Php,Mysql,Database,我使用PHP和MySQL运行Apache服务器 我想做一个简单的搜索引擎,查找包含特定字符串的文章 我有30000份文件,分页(我的意思是,总共30000份文件) 我认为有两种方法可以完成这项任务 向表中插入30000条记录(行)。然后mysql\u query查找包含查询字符串的记录 插入30条记录(行),每条记录1000条。然后mysql\u query查找包含查询字符串的记录,然后PHPexplode分离文章 哪一个更快 我将使用Select*from mytable,其中的内容文本类似于
mysql\u query
查找包含查询字符串的记录mysql\u query
查找包含查询字符串的记录,然后PHPexplode
分离文章Select*from mytable,其中的内容文本类似于“%querystring%”
主要的概念是
mysql\u查询
mysql\u查询
,然后使用PHPexplode
和strpos
再次搜索更多详情:
,
,而是及时编译它,这意味着查询将非常快
原因很简单,如果MySQL匹配字符串,那么字符串将直接匹配。如果在PHP上对来自MySQL的数据执行字符串匹配,则首先必须通过SQL接口将其从MySQL复制到PHP
根据您所搜索的内容,您可能需要考虑计算机语言算法,不仅可以找到匹配的行,而且还可以进行定性匹配。 编辑(因为问题编辑):实际上应该有两到三个表。一个列出所有文档的表。一个表,用于映射文档中的页面。和一个列出页面内容的表。页面内容和文档映射可以合并到同一个表中。像这样:
创建表文档(
id主键自动递增,
名称VARCHAR(255)
);
创建表页(
id主键自动递增,
documentId内部引用(Documents.id),
文本文本,
外键(文档id)引用文档(id))
);
然后执行如下查询:
从文档中选择Documents.name、Pages.text、Documents.id=Pages.documentId的页面以及类似“%querystring%”的文本;
不妨看看“全文搜索引擎”。其中一些与mysql配合使用。不要使用mysql\u query
-或任何这类函数。它们已被弃用,将从PHP的下一个主要版本中删除。如果我像您所说的那样将表分成两部分,那么如何查询以获取文本='%querytext%'
和文档。category='normal'
?还有一个问题,引用是md5哈希,而不是整数。(例如Documents.uniquehash和Pages.referencehash匹配,而不是Documents.id和Pages.documentId)您可以完全按照编写方式查询它:SELECT。。。其中Pages.text='%querytext'和Documents.category='normal'
。“引用是md5哈希”是什么意思?数据库中的引用由您定义。