我有一个真正混乱的数据库布局,需要优化。数据库的布局和执行的一些查询是否也会导致其他查询速度慢呢?
例如,具有大约100 000行的insert表需要9秒才能执行。它是由糟糕的数据库布局引起的,还是应该在其他地方搜索性能瓶颈?
我有三张桌子:
aiki_users
ocal_files
(与id和用户名连接,而不是外键/refeerence),我在字段中有标记(由coma代替分隔表)。ocal_favs
(假设与ocal_files和aiki_users连接),但没有真正的连接(外键)有一些以这种方式使用LIKE
的缓慢查询:upload_tags not like '%pd_issue%'
或
select *
from ocal_files
where upload_tags LIKE '%summer2010%'
这些需要5-7秒才能运行(在重负荷下).在沉重的负荷(现在),我们有200个活跃用户(由谷歌分析显示)。
使用大量LIKE
和RLIKE
搜索的一些最常见的查询被Sphinx所取代;这些页面运行得很快。
发布于 2012-05-29 16:36:36
是的,慢查询会导致其他查询变慢。
服务器只有有限数量的IO可以做,如果它忙着做繁重的类似操作,在你的情况下,它不能使用索引,它会使其他查询变慢。
发布于 2012-05-29 21:37:59
是的,您需要重新考虑您的模式和查询。
像‘%.’这样的foo --不能在foo上使用索引
9秒来插入一行--其他查询占用了表。(对于如何/为什么,有许多可能的解释。)
考虑全文而不是类似的
考虑使用带有“标记”的单独表。主桌将是一对一的。
https://dba.stackexchange.com/questions/18521
复制相似问题