我有以下情况:
我有一个包含大约 400 万行的特定 MyISAM 表的数据库。我使用存储过程(MySQL 5.1 版),特别是使用存储过程来根据各种条件搜索这些行。这个表上有几个索引,通过这个存储过程的查询通常非常快(<1s)。基本上,我使用准备好的语句并在此搜索 sp 中创建和执行一些动态 SQL。执行准备好的语句后,我执行“DEALLOCATE PREPARED stmt;”
大多数查询在一秒钟内运行(我使用 LIMIT 随时只获取 15 行)。但是,有一些罕见的查询需要更长时间才能运行(比如 2-3 秒)。我已尽我所能优化搜索表。
我开发了一个 Web 应用程序,我可以在一秒钟内在我的开发机器上运行并查看快速查询的结果。
但是,如果我打开两个浏览器实例并同时进行搜索(针对开发机器),一个具有运行时间较长的查询,另一个具有更快的查询,结果会同时返回,即看起来好像快速查询在返回结果之前等待较慢的查询完成。即两个查询都需要 2-3 秒...
是否有一个原因?因为我认为 MyISAM 处理 SELECTS 彼此无关,而目前这不是我正在经历的行为......
提前致谢!蒂姆