解决MySQL数据库中与优化器有关的问题

作者:10961 时间:2008-12-17 16:18:00 

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个以上的键搜索。

标签:
0
投稿

猜你喜欢

  • python3利用Dlib19.7实现人脸68个特征点标定

    2021-05-05 19:13:06
  • Element el-date-picker 日期选择器的使用

    2024-05-09 15:09:08
  • 基于python判断字符串括号是否闭合{}[]()

    2022-03-25 15:58:45
  • 关于页面刷新,事件重复提交的方法分享

    2023-07-06 06:50:03
  • Python实现的栈(Stack)

    2022-12-18 20:35:51
  • 详解git使用小结(本地分支与远程分支、git命令)

    2022-03-05 21:22:32
  • python操作redis方法总结

    2021-12-07 05:51:22
  • python删除过期log文件操作实例解析

    2021-02-03 18:29:36
  • django中使用memcached示例详解

    2023-02-10 07:30:50
  • vue.js使用watch监听路由变化的方法

    2024-05-10 14:16:22
  • python误差棒图errorbar()函数实例解析

    2023-12-14 22:39:49
  • 详解javascript中的变量提升和函数提升

    2024-06-07 15:53:28
  • python中利用matplotlib读取灰度图的例子

    2022-08-08 08:25:36
  • pycharm + django跨域无提示的解决方法

    2021-11-07 21:15:39
  • vue-quill-editor实现图片上传功能

    2024-04-30 10:22:40
  • sql将时间类型转换为字符串类型汇总

    2024-01-25 10:33:42
  • Mysql全文搜索match against的用法

    2024-01-19 16:30:57
  • 基于selenium及python实现下拉选项定位select

    2023-01-13 12:17:48
  • Python numpy和matlab的几点差异介绍

    2023-12-14 23:26:39
  • Python登录系统界面实现详解

    2021-02-11 19:24:04
  • asp之家 网络编程 m.aspxhome.com