我遇到了问题。我需要(出于教学目的)显示查询的优化过程(例如:没有任何索引的2秒,带索引的1秒等等)。
我有一个mysql数据库,每个表有12个表和1.000.000条记录。
问题是:如果我第一次执行查询,则需要x秒。第二次执行相同的查询,总是花0秒。我尝试刷新表,刷新查询缓存,在select中将查询缓存设置为OFF,将inno_db_buffer_pool设置为0M ..没有。在第一次执行查询之后,MYSQL在某处(我认为)缓存了结果,因此下一次执行总是需要0秒。
答案 0 :(得分:1)
如果您需要优化查询,请在SQL_NO_CACHE
语句中使用SELECT
。
答案 1 :(得分:0)
第一次运行查询时,应该使用SQL_NO_CACHE告诉MySQL不要将结果放入缓存中。仅在执行某些查询后应用SQL_NO_CACHE没有意义。重置您的服务器并使用SQL_NO_CACHE前缀执行所有查询。