MySQL中常用的强制操作(如强制索引)
常用的提示
对于经常使用Oracle的朋友,您可能知道Oracle有各种各样的提示函数,并提供了许多优化SQL语句的方法。
强制性指标力指数
复制代码代码如下:SELECT * FROM表1力指数(田)…
以上的SQL语句只使用建立索引的字段,而不是使用索引在其他领域。
忽略索引忽略索引
复制代码代码如下:SELECT * FROM表1忽略指数(field1,field2)…
在上面的SQL语句,在table1表的字段和专业的指标是没有用的。
关闭查询缓存sql_no_cache
复制代码代码如下:选择sql_no_cache field1,field2从表1;
有些SQL语句需要实时地查询数据,或者不经常使用(每天一到两次),因此我们需要关闭缓冲区。无论SQL语句是否已经执行,服务器都不会在缓冲区中找到它,并且每次都会执行它。
强制查询缓冲sql_cache
复制代码代码如下:选择sql_calhe *从表1;
如果在my.ini的query_cache_type设置为2,查询缓冲区只能使用后sql_cache使用。
优先high_priority
high_priority可用于选择、插入操作让MySQL知道此操作之前。
复制代码代码如下:选择high_priority *从表1;
操作low_priority滞后
low_priority可用于插入和更新操作让MySQL知道这个操作滞后。
复制代码如下:更新low_priority表1集田在田= =…
延迟插入插入延迟
复制代码代码如下:插入延迟到表1集田=…
插入延迟,客户端提交数据到MySQL和MySQL返回OK状态的客户。而在表中插入数据,这是存储在内存中的等待队列。当MySQL有备用,再插入。另一个重要的优势是很多客户将集中在一起,被写入一块。这比许多独立的插入执行快得多。缺点是它不能返回到自动增加ID,当系统崩溃,数据将丢失当MySQL已不能插入数据。
强制性的连接顺序straight_join
复制代码如下:选择table1.field1,table2.field2从表1 straight_join表在哪里…
它是已知的从上面的SQL语句,MySQL是被迫在表1和表顺序连接表通过straight_join.if你想连接在自己的秩序是更有效的比推荐的MySQL命令,你可以通过straight_join确定连接顺序。
sql_buffer_result被迫使用临时表
复制代码代码如下:选择sql_buffer_result从表1,*…
当我们查询从长期数据的比较结果,可以与sql_buffer_result。选项将强制进入结果集中的临时表,这样您就可以快速释放MySQL表锁(SQL语句以便其他人可以查询这些记录),并且可以很长时间为客户提供一组大记录。
包的使用临时表sql_big_result和sql_small_result
复制代码如下:选择sql_buffer_result field1,计数(*)从表的字段组;
一般用于分组或不同的关键词,这个选项告诉MySQL,如果有必要,将查询结果在临时表,甚至把它们暂时tables.sql_small_result几乎是相同的,sql_big_result很少使用。