MySQL服务器的任何解决scheme,以避免在运行大型查询时呈现无响应?

我为几个客户端运行了几个mysql服务器,这是我常见的一个常见问题。 当我对大数据库运行一些大的查询时,例如:

我有一个带有几个全文索引的MyISAM表,以及大约870万条logging,如果我search一个非索引列,mysql服务变得没有响应,直到结果出来(这可能需要30分钟)。

如何避免呈现mysql服务无响应? 例如,在任何操作系统中,您都可以设置进程优先级,以保证每个进程都有一些资源可以运行,那么在mysql中如何做呢?

可以有几个解决scheme来解决你的问题。 您可以尝试调整设置(允许mysql使用更多内存,确保它不交换,添加索引)或更改硬件(更多内存,更快的磁盘)。

另一种方法是设置一个mysql slave来运行繁重的读取查询,这样,当从机计算出你需要的结果时,你仍然可以用读写查询来更新主机。

你应该有每个涉及到search列的索引。 当您在没有索引的列中search时,search是否通过对FTS不是非常有效的“filesort”执行。