MySQL怎样使用tab键

你好 我想问问在mysql里面使用类似于tab自动补全的命令 该怎么做?

【基于new Bing 的精确模式的回答】

在mysql里面,你可以使用Tab键来自动补全数据库和表的名字。这个功能叫做auto-rehash 。你需要在启动mysql的时候加上--auto-rehash选项,或者在你的主目录下创建一个.my.cnf文件,里面写上[mysql] auto-rehash 。 如果你输入了部分的名字,然后按Tab键,mysql会尝试为你补全。如果有多个可能的匹配,你可以再按一次Tab键来查看所有的选项 。例如: mysql> describe someTableW [TAB] 如果someTableW是唯一的匹配,mysql会自动补全为someTableWithRidiculousLongName。如果不是唯一的匹配,你可以再按一次Tab键来查看其他可能的匹配。 注意,这个功能只有在你选择了一个数据库之后才能使用 。而且,如果你在会话中添加了新的对象,你需要运行\rehash命令来更新自动补全的列表。

【仅供参考】

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/188153
  • 你也可以参考下这篇文章:解决登陆MySQL时候爆出拒绝访问解决MySQL登录时拒绝访问,或不知道密码得问题
  • 除此之外, 这篇博客: 【图灵MySQL】深入理解Mysql索引底层数据结构与算法中的 联合索引的底层存储结构长什么样? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 想要了解这个其实就会和 索引最左前缀原则底层实现原理 扯上关系!

    只要我们的联合索引设计的好,其实可以通过三四个联合索引,将80%的SQL查询语句都覆盖到的!

    以下那一条SQL会走索引?

    -- 联合索引
    KEY 'idx_name_age_position' ('name','age','position') USING BTREE;
    
    -- 以下那一条SQL会走索引?
    EXPLAIN SELECT * FROM employees WHERE name = 'Bill' and age = 30;
    EXPLAIN SELECT * FROM employees WHERE age = 30 and position = 'dev';
    EXPLAIN SELECT * FROM employees WHERE position = 31;

    显然,我们根据 索引最左前缀原则底层实现原理 可以知道只有第一条SQL会走索引!

    至于为什么,我们以第二条SQL为例,首先我们知道该联合主键的('name','age','position')按这个顺序排序的,也就是他们在索引树中,先比较name字段,当name一样时,才会比较age字段,以此类推...

    第二条SQL为什么没有走索引就很好解释了。当缺少name的时候,后面的字段已经是无序的了,根本就走不了索引。

    所以我们想要搞清楚MySQL的索引,究其根本,还是要弄明白B+树这种数据结构,理解它的执行逻辑。