Mysql如何避免全表扫描的方法

棒棒好银

棒棒好银

2016-02-19 10:24

下面图老师小编跟大家分享一个简单易学的Mysql如何避免全表扫描的方法教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!
在以下几种条件下,MySQL就会做全表扫描:
1数据表是在太小了,做一次全表扫描比做索引键的查找来得快多了。当表的记录总数小于10且记录长度比较短时通常这么做。
2没有合适用于 ON 或 WHERE 分句的索引字段。
3让索引字段和常量值比较,MySQL已经计算(基于索引树)到常量覆盖了数据表的很大部分,因此做全表扫描应该会来得更快。
4通过其他字段使用了一个基数很小(很多记录匹配索引键值)的索引键。这种情况下,MySQL认为使用索引键需要大量查找,还不如全表扫描来得更快。
对于小表来说,全表扫描通常更合适。但是对大表来说,尝试使用以下技术来避免让优化程序错误地选择全表扫描:
1执行 ANALYZE TABLE tbl_name 更新要扫描的表的索引键分布。
2 使用 FORCE INDEX 告诉MySQL,做全表扫描的话会比利用给定的索引更浪费资源。
SELECT * FROM t1, t2 FORCE INDEX (index_for_column)
WHERE t1.col_name=t2.col_name;
3启动 mysqld 时使用参数 --max-seeks-for-key=1000 或者执行 SET max_seeks_for_key=1000 来告诉优化程序,所有的索引都不会导致超过1000次的索引搜索。
展开更多 50%)
分享

猜你喜欢

Mysql如何避免全表扫描的方法

编程语言 网络编程
Mysql如何避免全表扫描的方法

PHP+MYSQL网站注入扫描

编程语言 网络编程
PHP+MYSQL网站注入扫描

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何修护MYSQL数据表

MySQL mysql数据库
如何修护MYSQL数据表

如何锁定MYSQL数据表

MySQL mysql数据库
如何锁定MYSQL数据表

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MySQL锁表概述

编程语言 网络编程
MySQL锁表概述

mysql降序索引和减轻索引扫描

编程语言 网络编程
mysql降序索引和减轻索引扫描

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

解决Windows To Go U盘没有盘符怎么办

解决Windows To Go U盘没有盘符怎么办

Oracle与SQL Server在企业应用的比较

Oracle与SQL Server在企业应用的比较
下拉加载更多内容 ↓