在具有隐藏功能的悠久传统中,让我们列出 MySQL 中的隐藏功能。
每个答案都放一个特征。
另请参阅:
Linux
的隐藏特性 PowerShell 的
隐藏特性 Oracle 数据库
的隐藏特性 Windows 2008
的隐藏特性 Solaris/OpenSolaris
的隐藏特性 SQL Server
的隐藏特性 IIS (6.0 / 7.0) 的隐藏特性
在具有隐藏功能的悠久传统中,让我们列出 MySQL 中的隐藏功能。
每个答案都放一个特征。
另请参阅:
Linux
的隐藏特性 PowerShell 的
隐藏特性 Oracle 数据库
的隐藏特性 Windows 2008
的隐藏特性 Solaris/OpenSolaris
的隐藏特性 SQL Server
的隐藏特性 IIS (6.0 / 7.0) 的隐藏特性
一个经常不用但更冗长的
很方便,但不如令人敬畏的非企业查询分析器- 像这样启用
这两个是填充配置文件表的垃圾查询,
获取所有已分析查询及其持续时间的列表
最后一个查询的显示信息将只是“显示配置文件” - 或者您可以指定一个查询
您还可以请求特定信息,例如 CPU、BLOCK IO 和 SWAPS(均在手册页上)
之后不要忘记禁用它,因为日志记录会增加开销。
一些并不总是众所周知或记住的MySQL 命令。
将结果集方向更改为垂直以便于阅读和粘贴。
取消您当前正在输入的查询,同时将其保留在您的历史记录中。
使用您最喜欢的 $EDITOR 分别编辑一个查询或最后一个查询。
清除控制台的输出。
通过 MD5 哈希比较结果集。
改变你的提示。
在您的命令历史记录中搜索给定的字符串(如 Bash)。
开始输入搜索词并重复 ^R 以循环显示结果。
我学到的技巧可能对某些人有用:
要运行您之前保存的文件:
利用 ”\!” 访问 shell 命令。例如:
因此,如果您想将语句写入文件(不使用编辑器选项),您可以输入:
如果你输入
然后,您会将您的语句和查询结果定向/打印到您指定的文件名。用于
\\t
关闭此功能。\\G
用“;”代替“;”终止查询 为了以行格式而不是列格式显示输出。不要排除在 SHOW 语句中使用 Where...LIKE 子句。例如:
最后,要在不查看
my.cnf
文件的情况下找到 MySQL 数据目录的位置,请使用:我个人喜欢这个
SHOW
命令你可以这样做
SHOW PROCESSLIST
- 查看所有正在运行的 mysql 连接SHOW CREATE TABLE TableName
- 查看用于创建表SHOW CREATE PROCEDURE ProcedureName
的 sql - 查看用于创建 SP 的 sqlSHOW VARIABLES
- 查看所有系统变量在此处获取完整列表
实际记录,但很烦人:不正确数据的自动日期转换。
有时,当 MySQL 没有将输入调整为附近的有效日期时,您会很“幸运”,而是将其存储为
0000-00-00
根据定义无效的日期。但是,即使那样,您也可能希望 MySQL 失败,而不是默默地为您存储此值。将 MySQL 与其他数据库区分开来的另一个特性是
REPLACE INTO
命令。你可以做:您也可以像编写更新语句一样编写替换语句:
并不是一个真正的隐藏功能,但它鲜为人知,我经常使用它来节省执行查询以在执行 UPDATE 或 INSERT 之前检查是否存在某些内容
文档在这里
要查看查询执行计划,请使用
EXPLAIN
例如
没有真正隐藏,但慢查询日志可以真正有助于在高峰时间跟踪性能问题的原因。
在文件
my.cnf
中,[mysqld] 部分 - 添加:好吧,不能将其标记为重复,因为它是一个不同的站点(我这里没有代表),但我将链接到这个出色的 stackoverflow 帖子以解决相同的问题: