Php 在mysql中获得更快记录搜索的最佳方法

Php 在mysql中获得更快记录搜索的最佳方法,php,mysql,sql,database,Php,Mysql,Sql,Database,我在mysql数据库中有超过10亿条记录,问题是当我执行select查询时,搜索该字符串需要3分钟以上的时间 那么,当我有大量数据时,存储和检索的最佳方式是什么? 我的表格有4列: Serial_no, product_name, product_id, location 序列号从1自动递增。 我有重复的产品id出口。我没有执行任何索引,只是创建了一个表并使用 select * from table where condition 那么,如果我想有一个更快的查询搜索,我应该怎么做 编

我在mysql数据库中有超过10亿条记录,问题是当我执行select查询时,搜索该字符串需要3分钟以上的时间

那么,当我有大量数据时,存储和检索的最佳方式是什么? 我的表格有4列:

 Serial_no,  product_name,  product_id,  location
序列号从1自动递增。 我有重复的
产品id
出口。我没有执行任何索引,只是创建了一个表并使用

select * from table where condition
那么,如果我想有一个更快的查询搜索,我应该怎么做

编辑:我正在使用以下查询:

select * from the table where product_name="Example";

我应该将我的db更改为其他db吗?

我会根据我查询中最常用的字段创建索引,在这种情况下,您的主字段可能是product_id,因此它应该是群集索引,并使用product_名称创建非群集索引

CREATE NONCLUSTERED INDEX [itable_productname] ON table 
(
    product_name ASC
)

我会根据我查询中where中最常用的字段创建索引,在这种情况下,您的主字段可能是product_id,因此它应该是集群索引,并使用product_名称创建非集群索引

CREATE NONCLUSTERED INDEX [itable_productname] ON table 
(
    product_name ASC
)

编辑您的问题并显示您正在使用的查询和示例数据。毫无疑问,索引是您问题的解决方案。取决于您需要哪种类型的seacrh。。更新您的问题并告诉我们您真正需要的搜索。。向我们显示您正在使用的代码我想使用产品名称查看产品的详细信息!无索引=>无数据库,使用Excel;)为联接、where、order by和group by中的所有字段编制索引,除非插入或更新许多行(索引速度较慢)。编辑问题并显示正在使用的查询和示例数据。毫无疑问,索引是您问题的解决方案。取决于您需要哪种类型的seacrh。。更新您的问题并告诉我们您真正需要的搜索。。向我们显示您正在使用的代码我想使用产品名称查看产品的详细信息!无索引=>无数据库,使用Excel;)索引联接中的所有字段,其中,order by和group by,除非插入或更新许多行(使用索引速度较慢)。