2016-09-24 49 views
-1

我有这个疑问是否可以优化查询获取表

SELECT id, alias, parent FROM `content` 

所有行是否有办法来优化这个查询,从而“型”比“全部”

不同

ID - 初级,独特

ID - 索引

父 - 索引

别名 - 指数

....

请注意,该查询几乎不会返回超过1500行。

谢谢

+1

据我了解的问题 - 没有。但是在使用这个查询时优化是可能的:查询数据的下一个生命是什么? –

+0

您可以通过删除一些行来优化它:p – Drew

+0

Jacek - 不确定你的意思 – orbitory

回答

0

您的查询获取所有的行,所以顾名思义它会报告“ALL”作为EXPLAIN报告的查询类型。唯一的另一种可能性是“索引”查询类型,即索引扫描,用于访问索引中的每个条目。但这几乎与桌面扫描相同。

有一种说法是,最快的SQL查询是根本不运行的,因为您以其他方式获取数据。

例如,如果数据在某种类型的缓存中。如果您的数据不超过1500行,并且不会频繁更改,那么它可能是放入内存的理想选择。然后,只有在缓存的数据丢失时才运行SQL查询。

有一对夫妇的共同选择:

  • MySQL query cache是保持在MySQL服务器的内存缓存,并清除时自动在表中的数据发生变化。

  • Memcached是一个受欢迎的内存中键值存储器,这些存储器也是使用MySQL的应用程序频繁使用的。速度非常快。另一种选择是Redis,它与此类似,但也受磁盘存储的支持。

0

OFFlog_queries_not_using_indexes;它像你得到的红鲱鱼一样混乱了慢日志。

0.00XX秒 - 够好不用担心。

ALL实际上最适合从表格的“所有”行中获取多个列。