Mysql 返回第一个匹配行提高查询性能

Mysql 返回第一个匹配行提高查询性能,mysql,sql-server,Mysql,Sql Server,我有一个超过一百万行的公共记录数据库。我需要使用用户全名和出生日期查询数据库。查询如下所示: SELECT * FROM TexasBexarCountyMisdemeanorPublicRecords WHERE ([FULL-NAME] = 'EXAMPLELASTNAME, EXAMPLEFIRSTNAME') AND (BIRTHDATE = '1989-10-18 00:00:00') 目前,此查询需要2分45秒才能成功完成。不幸的是,由于数据结构和用户提供的信息,我想不

我有一个超过一百万行的公共记录数据库。我需要使用用户全名和出生日期查询数据库。查询如下所示:

SELECT * 
FROM TexasBexarCountyMisdemeanorPublicRecords 
WHERE  ([FULL-NAME] = 'EXAMPLELASTNAME, EXAMPLEFIRSTNAME') 
  AND (BIRTHDATE = '1989-10-18 00:00:00')
目前,此查询需要2分45秒才能成功完成。不幸的是,由于数据结构和用户提供的信息,我想不出任何其他查询数据库的方法

此查询的目的是提供与单个用户有关的记录列表。这些记录通过拥有用户全名和出生日期来定义其所有权。所有列都有字符串值。用户也可能有多条记录

  • 这个查询效率极低。有没有更好的方法在记录中搜索全名和生日匹配

  • 我想在第一次匹配后停止搜索,但是这对有多条记录的用户来说是没有用的

  • 我已经有了一个主键列,可以使用该ID快速查找记录。但是,当用户第一次登录时,我无法知道该ID。因此,我需要使用他们的姓和出生日期搜索记录,然后保存这些id以备将来参考

  • 如果我在搜索中添加更多的条件,是否会提高搜索效率?如果我传递了性别、种族等的值


  • 感谢您的帮助。

    它在ID上返回得很快,因为它已被索引。索引正在搜索的字段,并在适当的情况下考虑覆盖索引。 它在ID上返回得很快,因为它已被索引。索引正在搜索的字段,并在适当的情况下考虑覆盖索引。

    是否是MySQL或SQL Server?您是否考虑添加一个索引来优化查询,例如在列的全名和生日中的索引?我有一个唯一的标识符,但是我没有想到将索引添加到其他列中。我会考虑一下,谢谢@ MySQL或SQL Server ToMuthLyppi?您是否考虑添加一个索引来优化查询,例如在列的全名和生日中的索引?我有一个唯一的标识符,但是我没有想到将索引添加到其他列中。我会调查的,谢谢@ThomasPhilippDang!你比我快了五秒!谢谢@Joe C我会考虑加入indexWOW我很惊讶你能从StackOverflow中学到多少。谢谢@Joe C现在我的问题马上就出来了。该死!你比我快了五秒!谢谢@Joe C我会考虑加入indexWOW我很惊讶你能从StackOverflow中学到多少。谢谢@Joe C现在我的问题马上就出来了。