在具有隐藏功能的悠久传统中,让我们列出MySQL中的隐藏功能。
每个答案要放一个功能。
另请参阅:
Linux的
隐藏功能PowerShell的
隐藏功能Oracle数据库的
隐藏功能Windows 2008的
隐藏功能Solaris / OpenSolaris的
隐藏功能SQL / SQL Server的
隐藏功能IIS的隐藏功能(6.0 / 7.0)
在具有隐藏功能的悠久传统中,让我们列出MySQL中的隐藏功能。
每个答案要放一个功能。
另请参阅:
Linux的
隐藏功能PowerShell的
隐藏功能Oracle数据库的
隐藏功能Windows 2008的
隐藏功能Solaris / OpenSolaris的
隐藏功能SQL / SQL Server的
隐藏功能IIS的隐藏功能(6.0 / 7.0)
Answers:
经常不使用但更详细
方便,但不如出色的非企业查询分析器 -像这样启用
mysql>设置配置文件= 1; 查询正常,受影响的0行(0.00秒)
这两个是填充配置文件表的垃圾查询,
mysql>从_test.customers中选择*; 错误1146(42S02):表'_test.customers'不存在 mysql> select * from test.customers限制为0; 空置(0.00秒)
获取所有已分析查询及其持续时间的列表
mysql>显示配置文件; + ---------- + ------------ + ------------------------- ------ + | Query_ID | 持续时间| 查询| + ---------- + ------------ + ------------------------- ------ + | 1 | 0.00013400 | 从_test.customers中选择* | | 2 | 0.01546500 | 从test.customers中选择* + ---------- + ------------ + ------------------------- ------ +
上一个查询的显示信息只是“显示个人资料”-您也可以指定一个查询
mysql>显示查询2的配置文件; + ---------------------- + ---------- + | 现状 持续时间| + ---------------------- + ---------- + | 开始 0.000053 | | 检查权限| 0.000007 | | 开幕桌| 0.000014 | | 系统锁| 0.000006 | | 桌锁| 0.000008 | | 初始化| 0.000065 | | 优化 0.000003 | | 执行 0.000201 | | 结束| 0.000003 | | 查询结束| 0.000002 | | 释放物品| 0.000020 | | 日志记录慢查询| 0.000002 | | 清理| 0.000004 | + ---------------------- + ---------- + 设置13行(0.00秒)
您还可以请求特定信息,例如CPU,BLOCK IO和SWAPS等(全部在手册页上)
mysql>显示查询2的配置文件cpu; + ---------------------- + ---------- + ---------- + ---- -------- + | 现状 持续时间| CPU_user | CPU_system | + ---------------------- + ---------- + ---------- + ---- -------- + | 开始 0.000056 | 0.001000 | 0.000000 | | 检查权限| 0.000007 | 0.000000 | 0.000000 | | 开幕桌| 0.000010 | 0.000000 | 0.000000 | | 系统锁| 0.000005 | 0.000000 | 0.000000 | | 桌锁| 0.000007 | 0.000000 | 0.000000 | | 初始化| 0.000059 | 0.000000 | 0.000000 | | 优化 0.000003 | 0.000000 | 0.000000 | | 统计 0.015022 | 0.000000 | 0.000000 | | 准备 0.000014 | 0.001000 | 0.000000 | | 执行 0.000004 | 0.000000 | 0.000000 | | 发送数据 0.000245 | 0.000000 | 0.000000 | | 结束| 0.000004 | 0.000000 | 0.000000 | | 查询结束| 0.000002 | 0.000000 | 0.000000 | | 释放物品| 0.000021 | 0.000000 | 0.000000 | | 日志记录慢查询| 0.000002 | 0.000000 | 0.000000 | | 清理| 0.000004 | 0.000000 | 0.000000 | + ---------------------- + ---------- + ---------- + ---- -------- + 设置16行(0.00秒)
不要忘了以后禁用它,因为日志记录会增加开销。
mysql>设置配置文件= 0; 查询正常,受影响的0行(0.00秒)
一些并不总是众所周知或不记得的MySQL命令。
将结果集方向更改为垂直,以便于阅读和粘贴。
mysql> SELECT CURDATE(), CURTIME()\G
*************************** 1. row ***************************
CURDATE(): 2009-06-26
CURTIME(): 12:10:37
取消您当前输入的查询,同时将其保留在历史记录中。
mysql> SELECT CURDATE(), CURTIME()\c
mysql>
使用您喜欢的$ EDITOR分别编辑查询或最后一个查询。
mysql> SELECT CURDATE(), CURTIME()\e
mysql> \e
清除控制台的输出。
mysql> \! clear
通过MD5哈希比较结果集。
mysql> pager md5sum -
PAGER set to 'md5sum -'
mysql> SELECT CURDATE(), CURTIME();
d24e22e4e2d33dfda9f01ba934b7676a -
mysql> nopager
PAGER set to stdout
更改提示。
mysql> prompt (\u@\h) [\d]>\_
PROMPT set to '(\u@\h) [\d]>\_'
(dan@localhost) [test]>
在命令历史记录中搜索给定的字符串(例如Bash)。
开始输入搜索词并重复^ R以循环显示结果。
^R
(reverse-i-search)`DATE': SELECT CURDATE(), CURTIME();
md5sum -
用作传呼机的想法。并不是特定
我了解到的技巧可能对某些人有用:
要运行您之前保存的文件:
source filename # Alternatively you can enter "\\. filename".
采用 ”\!” 访问shell命令。例如:
\\! ls c*sql # To list all your SQL files in directory starting with "c".
因此,如果您想将语句写入文件(不使用编辑器选项),则可以输入:
\\! echo 'select * from emp where job ="salesman" ' > test2.sql # Editor option seems easier to me though!
如果输入
\\T filename
然后,您会将语句和查询结果定向/打印到您指定的文件名。使用\\t
关闭这个功能。
用\\G
而不是“;” 终止查询 为了以行格式而不是列显示输出。
不要排除在SHOW语句中使用Where ... LIKE子句。例如:
SHOW STATUS LIKE '%cache%';
最后,要查找MySQL数据目录的位置而不查看my.cnf
文件,请使用:
SHOW VARIABLES LIKE 'datadir';
我个人喜欢SHOW
命令
您可以做
SHOW PROCESSLIST
-查看与mysql的所有正在运行的连接
SHOW CREATE TABLE TableName
-查看用于创建表
SHOW CREATE PROCEDURE ProcedureName
的sql-查看用于创建SP的sql-
SHOW VARIABLES
查看所有系统变量
在此处获取完整列表
REPLACE INTO
命令使MySQL与其他数据库区分开来的另一个功能。你可以做:
REPLACE INTO T1 (Col1, Col2 )
SELECT Col1, Col2 FROM T2;
您也可以像编写update语句一样编写replace语句:
REPLACE INTO T1
SET Col1 = 'SomeValue1'
, Col2 = 'SomeValue2'
查看查询执行计划使用 EXPLAIN
例如
EXPLAIN
SELECT T1.Col1, T2.Col2
FROM T1 INNER JOIN T2 ON T1.Id = T2.Id
WHERE T1.Col3 = 10
好吧,不能将其标记为重复,因为它是一个不同的站点(并且我在这里没有代表),但是我将链接到同一问题的出色的stackoverflow帖子:
就像添加pQD的答案一样(作为noobie,我还不能添加评论),如果您尚未在正确的my.cnf文件中添加慢查询日志的路径,则错误日志将为写入数据目录(使用SHOW VARIABLES LIKE'datadir';找出它在哪里),文件名的格式为[systemname] -slow.log