Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql索引正在更改_Php_Html_Mysql_Select_Indexing - Fatal编程技术网

Php mysql索引正在更改

Php mysql索引正在更改,php,html,mysql,select,indexing,Php,Html,Mysql,Select,Indexing,我将用php(在mysql数据库中)编写搜索脚本,所以我将使用索引来完成它(以加快速度)。我有这样的html表单 HTML: <select name="search"> <option value="name">Name</option> <option value="surname">Surname</option> <option value="etc">Etc.</option>

我将用php(在mysql数据库中)编写搜索脚本,所以我将使用索引来完成它(以加快速度)。我有这样的html表单

HTML:

<select name="search">
    <option value="name">Name</option>
    <option value="surname">Surname</option>
    <option value="etc">Etc.</option>
</select>

名称
姓
等

所以我将编写mysql索引,如So=>,例如,如果选择了名称,我想在数据库中创建带有名称列的索引,在结果之后,我想删除该索引(这一切都是用php实现的),我将对每个选择选项都这样做,所以我感兴趣的是这样做是否正确,如果不是,我该怎么做?此外,该表不会被更新,但它也可以添加一些其他数据,在这种情况下,我是否会遇到索引问题?

如果我理解正确,您的方法是每次搜索该列时在该列上创建一个新索引

这绝对不正确。如果表中有任何实际数据量,则创建索引的过程可能非常缓慢。创建一次索引。然后,在搜索列字段时,它们将始终存在。特别是如果你说的“表不会更新”。我从未遇到过这样一种情况,即通过编程创建然后删除索引是正确的方法


值得注意的是,当您创建一个新的索引时,MySQL会构建一个单独的信息块,每次在表中进行更改时都必须更新该信息块。如果表中有大量数据,并且经常进行更改(迫使索引不断更新),则可能会遇到一些性能问题。但是,我觉得这不是你的情况。

那么我可以创建一些索引(例如4)吗?在一些索引中也有例如2列?是的,你可以这样做。MySQL非常擅长确定用于查询的最佳可用索引。我建议您阅读MySQL如何使用索引。