欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【解决MySQL数据库中与优化器有关的问题】,下面是详细的分享!
解决MySQL数据库中与优化器有关的问题
MySQL采用了基于开销的优化器,以确定处理查询的最解方式。在很多情况下,MySQL能够计算最佳的可能查询计划,但在某些情况下,MySQL没有关于数据的足够信息,不得不就数据进行“有教养”的估测。
当MySQL未能做“正确的”事时,可使用下述工具来帮助MySQL:
使用EXPLAIN语句获取关于MySQL如何处理查询的信息。要想使用它,可在SELECT语句前添加关键字EXPLAIN:
mysql> EXPLAIN SELECT * FROM t1, t2 WHERE t1.i=t2.i;
使用ANALYZE TABLE tbl_name,为已扫描的表更新键分配。
为已扫描的表使用FORCE INDEX,通知MySQL:与使用给定的索引相比,表扫描开销昂贵。
SELECT * FROM t1, t2 FORCE INDEX (index_for_column)
WHERE t1.col_name=t2.col_name;
USE INDEX和IGNORE INDEX也有一定的帮助。
你可以调节全局或线程类系统变量。例如,用“--max-seeks-for-key=1000”选项启动mysqld,或使用“SET max_seeks_for_key=1000”来通知优化器:假定任何表扫描均不会导致1000个以上的键搜索。
以上所分享的是关于解决MySQL数据库中与优化器有关的问题,下面是编辑为你推荐的有价值的用户互动:
相关问题:数据库问题
答:可能原因:1)内存不足;2)操作系统不支持bug。 Mysql的错误 信息:无法连接到Mysql服务器sql: 错误:不能创建一个新线程(errno的12);如果你不出来的可用内存,你可以咨询errno的错误的手册,为可能操作系统的依赖。 数据库服务器问题,数据... >>详细
相关问题:问个mysql优化问题
答:数据库优化的问题需要从多个角度考虑: 一、针对数据库结构和查询的优化: 在一般的应用中,合理的数据表结构和索引的设计,能够最大化查询性能。即时在千万级别的数据表中,针对主键的查询也会非常快速。在数据量太大的情况下,没有使用索引的... >>详细
相关问题:安装Discuz的时候提示数据库出现问题
答:解决数据库和php配置问题。 Discuz是一套通用的社区论坛软件系统,推出已经大约10年,目前已经非常成熟。它运行于apache、php 和 MySQL的集成环境。 题目提示数据库问题,有两个可能: 1、检查mysql数据库:安装是否正确,账号和密码配置给php;... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
