时间:2021-07-01 10:21:17 帮助过:20人阅读
可以通过生成表的形式绕过上面的限制,因为mysql只会把这个表当作一个临时表来处理。实际上,这执行了两个查询:一个是子查询中的select语句,另一个是多表关联update,只是关联的表是一个临时表。子查询会在update语句打开表之前就完成,所以下面的查询会正常执行:
DELAYED:针对insert和replace。执行后立即返回,然后在空闲的时候,数据才会写入到硬盘。比较适合记录日志。
STRAIGHT_JOIN:定义关联顺序。
SQL_SMALL_RESULT,SQL_BIG_RESULT:用于查询,标志结果集的大小,引导排序操作在内存或者硬盘中执行。
SQL_BUFFER_RESULT:将查询结果放入一个临时表,尽快的释放表锁。
SQL_CACHE,SQL_NO_CACHE:是否缓存。
USE INDEX,IGNORE INDEX,FORCE INDEX:强制使用索引,和不适用索引。
这一章节是mysql的独有的功能,不是sql标准,可以在查询里使用自定义变量,来实现行号、统计等功能。这里我没有细看,罗列了两篇文章可以参考:
http://www.cnblogs.com/guaidaodark/p/6037040.html
http://blog.csdn.net/muzizhuben/article/details/49449853
高性能mysql 第6章 查询性能优化(2)
标签:自定义 hit alt target 并行执行 空闲 date 打开 并行