Php SQL查询速度和优化

Php SQL查询速度和优化,php,mysql,sql-server,database,paypal,Php,Mysql,Sql Server,Database,Paypal,因此,我刚刚建立了一个数据库,该数据库只包含一个包含以下字段的表: 密钥值:保存密钥的6位代码 已赎回:如果密钥已赎回,则为布尔值 赎回人:谁赎回了它 赎回日期:赎回的时间 软件名称:与密钥相关的软件的名称 我基本上从一个空数据库开始,然后当有人通过PayPal购买时,他们会得到自己的密钥并将其添加到数据库中。在此之后,他们打开一个应用程序,允许他们输入代码,然后在数据库中搜索并标记为已赎回代码,以便不能再次使用-这导致已赎回和未赎回的代码都在一个表中 如果我购买了好几千件,这会不会导致数据库的

因此,我刚刚建立了一个数据库,该数据库只包含一个包含以下字段的表:

密钥值:保存密钥的6位代码

已赎回:如果密钥已赎回,则为布尔值

赎回人:谁赎回了它

赎回日期:赎回的时间

软件名称:与密钥相关的软件的名称

我基本上从一个空数据库开始,然后当有人通过PayPal购买时,他们会得到自己的密钥并将其添加到数据库中。在此之后,他们打开一个应用程序,允许他们输入代码,然后在数据库中搜索并标记为已赎回代码,以便不能再次使用-这导致已赎回和未赎回的代码都在一个表中

如果我购买了好几千件,这会不会导致数据库的速度大大减慢,甚至崩溃?如果是一个更大的数字,比如10000

到底什么是一个好的解决方案,即使我有另一个表的赎回钥匙,它将不得不看看在赎回表,看看它是否赎回


谢谢你的回答,我还在学习数据库和SQL

我认为你的设计很好。您可能希望根据要运行的查询添加索引。key_值听起来像是一个很好的主键,它也可以作为更新已赎回数据的索引


正如Marc B所指出的,硬件是您考虑性能的唯一可能因素。

我认为您的设计是合理的。您可能希望根据要运行的查询添加索引。key_值听起来像是一个很好的主键,它也可以作为更新已赎回数据的索引


正如Marc B所指出的,硬件是您唯一可能考虑性能的因素。

为此,我将使用两个表:一个用于您指定的内容,另一个作为存档表,其中包含一个定期迁移已赎回/过期记录的作业

理由:该表的主要用途是用于赎回,而不是用作存档。随着时间的推移,随着在表中找到越来越多的已赎回记录,由于表中的所有“死木”,未赎回记录的查找性能开始变得越来越差。(你认为易趣会将所有活跃和完成的拍卖放在一张桌子上吗?)

如果您仍然绝对需要“一个表”解决方案,则可以轻松创建合并两个表的视图


此外,如果设置了正确的主键,性能(暂时)不会迅速下降,因为这将消除记录卷增长时所指的表扫描。

,但另一种方法是作为存档表,其中包含一个作业,可以定期迁移已赎回/过期的记录

理由:该表的主要用途是用于赎回,而不是用作存档。随着时间的推移,随着在表中找到越来越多的已赎回记录,由于表中的所有“死木”,未赎回记录的查找性能开始变得越来越差。(你认为易趣会将所有活跃和完成的拍卖放在一张桌子上吗?)

如果您仍然绝对需要“一个表”解决方案,则可以轻松创建合并两个表的视图


此外,如果设置了适当的主键,性能(暂时)不会迅速下降,因为这样会消除表扫描,而这正是您在记录卷增长时提到的。

如果您的mysql有10000条记录的问题,您将在一台超负荷和/或动力不足的机器上运行它。mysql实例中有几十亿条记录。如果您的mysql有10000条记录的问题,那么您正在一台过载和/或功率不足的机器上运行它。mysql实例中有几十亿条记录。