`

PROCEDURE ANALYSE()为mysql提高性能提供建议

 
阅读更多
procedure analyse();语法如下
select column from table_name procedure analyse();
以下引用一段文章:
PROCEDURE ANALYSE 通过分析select查询结果对现有的表的每一列给出优化的建议。
PROCEDURE ANALYSE的语法如下:
SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements,[max_memory]])

max_elements (默认值256) analyze查找每一列不同值时所需关注的最大不同值的数量.
analyze还用这个值来检查优化的数据类型是否该是ENUM,如果该列的不同值的数量超过了
max_elements值ENUM就不做为建议优化的数据类型。
max_memory   (默认值8192) analyze查找每一列所有不同值时可能分配的最大的内存数量

样例程序
------------------------------------------------------------------------------------
mysql> DESC user_account;
+-----------+------------------+------+-----+---------+----------------+
| Field     | Type             | Null | Key | Default | Extra          |
+-----------+------------------+------+-----+---------+----------------+
| USERID    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| USERNAME  | varchar(10)      | NO   |     | NULL    |                |
| PASSSWORD | varchar(30)      | NO   |     | NULL    |                |
| GROUPNAME | varchar(10)      | YES  |     | NULL    |                |
+-----------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> select * from user_account PROCEDURE ANALYSE(1)\G;
*************************** 1. row ***************************
             Field_name: ibatis.user_account.USERID
              Min_value: 1
              Max_value: 103
             Min_length: 1
             Max_length: 3
       Empties_or_zeros: 0
                  Nulls: 0
Avg_value_or_avg_length: 51.7500
                    Std: 50.2562
      Optimal_fieldtype: TINYINT(3) UNSIGNED NOT NULL
*************************** 2. row ***************************
             Field_name: ibatis.user_account.USERNAME
              Min_value: dfsa
              Max_value: LMEADORS
.........................................................
---------------------------------------------------------------------------------------
从第一行输出我们可以看到analyze分析ibatis.user_account.USERID列最小值1,最大值103,最小长度1,
最大长度3...,并给出了改字段的优化建议:建议将该字段的数据类型改成TINYINT(3) UNSIGNED NOT NULL。
分享到:
评论

相关推荐

    MySQL利用procedure analyse()函数优化表结构

    为了帮助解决这个问题,MySQL提供了一个内置的函数——`PROCEDURE ANALYSE()`。本文将深入探讨这个函数,了解其工作原理,以及如何在实际操作中运用它来优化表结构。 **一、PROCEDURE ANALYSE()函数简介** `...

    MySQL性能优化的21个最佳实践.pdf

    1. 为查询缓存优化你的查询 2. EXPLAIN 你的 SELECT 查询 3. 当只要一行数据时使用 LIMIT 1 4. 为搜索字段建索引 5. 在 Join 表的时候使用相当类型的例,并将其索引 ...10. 从 PROCEDURE ANALYSE() 取得建议 ......等等

    MySQL性能优化

    - **自动优化器**:MySQL提供了`PROCEDURE ANALYSE()`工具,它可以分析查询并提出优化建议。虽然不是所有建议都适用于实际情况,但它仍然是一个非常有用的工具,可以帮助开发者发现潜在的问题。 #### 11. 尽量使用`...

    常用的mysql命令

    21. **PROCEDURE ANALYSE()**:这个函数提供最佳数据类型的建议。例如,`SELECT * FROM students PROCEDURE ANALYSE()`分析表中数据并给出优化建议。 22. **UPDATE**:`UPDATE`用于修改表中的数据。`UPDATE MYTABLE...

    mysql命令大全

    `:优化表`table_name`,用于回收未使用的空间,提高查询性能。 - **使用 PROCEDURE ANALYSE() 分析存储过程**: - `SELECT * FROM students PROCEDURE ANALYSE();`:分析存储过程的执行计划,帮助理解其内部操作...

    mysql 学习中 和大家分享一下

    - `PROCEDURE ANALYSE()`函数用于显示查询的执行统计信息,帮助优化查询性能。 通过以上总结,我们可以看到MySQL提供了丰富的功能来支持数据管理、查询优化和数据库维护。对于初学者而言,掌握这些基础和进阶命令是...

    Java面试准备:数据库MySQL性能优化

    当只要一行数据是使用LIMIT 1 为搜索字段建索引 在Join表的时候使用相当类型的列,并将其索引 千万不要ORDER BY RAND() 避免SELECT * 永远为每张表设置一个ID 使用ENUM而不是VARCHAR 从PROCEDURE ANALYSE() ...

    Mysql常用命令

    根据提供的文件信息,我们可以整理出一系列关于MySQL的常用命令及相关知识点。下面将对这些命令进行详细解释,并结合实际应用场景来加深理解。 ### MySQL 常用命令详解 #### 启动与停止 MySQL 服务 - **启动 MySQL...

    优化数据库对象

    例如,在MySQL中,可以通过`PROCEDURE ANALYSE()`方法来获取表结构的优化建议。 - **`PROCEDURE ANALYSE()`**:此方法用于分析表结构,并提供针对字段数据类型的优化建议。 - **示例**: ```sql SELECT * FROM ...

    数据库运维形考任务5-实验5 数据库性能监视与优化实验.pdf

    在本实验中,我们将学习如何使用 MySQL 提供的各种命令和工具来监视和优化数据库性能。 实验 5-1:使用 SHOW 语句查询设备吞吐量 在这个实验中,我们将使用 SHOW 语句来查询设备吞吐量,包括 Questions、...

    mysql简单命令

    根据提供的文件信息,我们可以整理出一系列关于MySQL的基本命令与操作要点。这些命令涵盖了数据库的创建、查询、修改等基本操作,对于初学者来说是十分有用的资料。下面将对这些知识点进行详细解读: ### MySQL ...

    LAMP服务器性能优化技巧之Mysql优化

    - 使用`PROCEDURE ANALYSE()`函数分析表结构,找到最优的列类型。 - 对于不保存NULL值的列,添加`NOT NULL`约束,以利于索引效率。 - 转换ISAM表为更高效的MyISAM表,MyISAM支持表级锁定,适合读多写少的场景。 ...

    数据库运维形考任务5-实验5 数据库性能监视与优化实验.docx

    12. **实验5-14**:使用`PROCEDURE ANALYSE`对表的列进行分析,以获取关于列数据分布和存储优化的建议。 13. **实验5-15**:将IP地址与数字之间进行转换,用于理解这类函数的用途。 14. **实验5-16**:通过改写...

    MySQL SQL语句优化的10条建议

    1.将经常要用到的字段(比如...如果表数据有一定的量了,不妨用PROCEDURE ANALYSE()命令来取得字段的优化建议!(在phpmyadmin里可以在查看表时,点击 “Propose table structure” 来查看这些建议) 如此可以让你的表

    mySql命令大全

    **命令:** `SELECT PROCEDURE ANALYSE();` **描述:** 分析执行计划。 **说明:** 此命令可以提供关于查询执行过程的详细信息,帮助进一步优化查询性能。 通过以上命令的详细介绍,我们可以更加深入地理解MySQL中...

    MySQL数据库优化技术之索引使用技巧总结

    使用 SELECT * FROM TB_TEST PROCEDURE ANALYSE()可以对这个表的每一个字段进行分析,给出优化列类型建议 3.对于不保存NULL值的列使用NOT NULL,这对你想索引的列尤其重要 4.建立合适的索引 5.使用定长字段,速度比变...

    MySQL中数据类型相关的优化办法

    8. **使用ANALYSE过程**:MySQL 3.23及更高版本提供了PROCEDURE ANALYSE()功能,它可以分析查询结果并提供建议,帮助判断列的最佳数据类型,比如是否应该转换为ENUM类型。 总的来说,MySQL中的数据类型优化是通过...

Global site tag (gtag.js) - Google Analytics