mysql优化器怎么用 mysql sql优化工具( 三 )


但是实际上,这个条件被转换为:
key_part1 = 1 AND key_part2 IS NOT NULL
假设以下表达式, col_name 是一个索引的列
只要 col_name 等同于这些值中的任意一个,这个表达式结果就是 true。这种比较是等值范围比较(其中的“范围”是一个单独的值) 。
优化器按照以下方法,估算读取相等的值来进行等值范围比较的成本:
当使用 index dive 时,优化器在每个范围的末端进行 dive 并且使用该范围中的行数作为估算值 。例如: col_name IN (10, 20, 30) 具有三个等值范围,优化器对每个范围进行两次 dive 以生成估算值 。每次 dive 都会得出具有给定值的行数的估算值 。
使用 index dive 提供了准确的行数估算值,但是随着表达式中要比较的值的数量增加,优化器需要使用更长的时间来生成行数的估算值 。而使用索引统计信息的准确性不如直接使用索引,但是可以对大表进行更快的估算 。
eq_range_index_dive_limit 选项可以控制优化器选择评估策略的值 。要对 N 个等值范围使用 index dive,将 eq_range_index_dive_limit 设置为 N+1 ,要禁用统计信息,总是使用 index dive ,将 eq_range_index_dive_limit 设置为0 。
在MySQL8.0以前,除了使用 eq_range_index_dive_limit,没有其他方法可以跳过 index dive。在MySQL8.0中 , 当满足以下条件时 , 跳过 index dive :
对于 EXPLAIN FOR CONNECTION ,如果跳过了 index dive,输出结果有所变更:
【mysql优化器怎么用 mysql sql优化工具】 不包括 FOR CONNECTION 的 EXPLAIN 输出没有变化
在执行跳过 index dive 的查询后,INFORMATION_SCHEMA.OPTIMIZER_TRACE 表包含一个值为 skipped_due_to_force_index 的 index_dives_for_range_access 行
优化器可以对这种形式的查询进行范围扫描:
SELECT ... FROM t1 WHERE ( col_1, col_2 ) IN (( 'a', 'b' ), ( 'c', 'd' ));
要使用范围扫描,查询必须满足以下条件:
要控制有多少内存可以用来进行范围优化,使用 range_optimizer_max_mem_size 变量
使用以下原则估算范围扫描使用的内存:
IN() 中的每个值被当做使用 OR 结合的一个谓词 。如果有两个 IN() 列表 , 每个列表中都是列表中的值的数量个谓词通过 OR 结合 。在这种情况下,视作 M × N 个 谓词通过OR 结合 。
mysql hint优化器提示之使用force index 强制使用索引和指定禁用索引1、mysql强制使用主键索引
2、强制指定一个特定索引
3、同时指定两个
4、在多个表join中强制使用索引
select * from table ignore index(PRI) limit 2;(禁止使用主键)
select * from table ignore index(idx) limit 2;(禁止使用索引”idx”)
select * from table ignore index(PRI,idx) limit 2;(禁止使用索引”PRI,idx”)
force index 不建议使用,如果数据量有变化 , 指定的索引可能不是最佳的
linux 下怎么优化mysql占用内存?修改mysql配置文件,优化缓存大小和连接数连接方式 , 优化sql语句 ,记得mysql好像是有工具可以查看最占用资源的sql语句,找到他,优化他 。
安装好mysql后 , 配制文件应该在/usr/local/mysql/share/mysql目录中,配制文件有几个,有my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf,不同的流量的网站和不同配制的服务器环境,当然需要有不同的配制文件了 。
一般的情况下 , my-medium.cnf这个配制文件就能满足我们的大多需要;一般我们会把配置文件拷贝到/etc/my.cnf 只需要修改这个配置文件就可以了,使用mysqladmin variables extended-status _u root _p 可以看到目前的参数,有3个配置参数是最重要的,即key_buffer_size,query_cache_size,table_cache 。

推荐阅读