{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

是否要掌握全部的MySQL工具?

xzavierxzavier 回答0 收藏2
收藏问题

7条回答

nanfeiyan

nanfeiyan

回答于2022-06-28 15:36

完全没有必要啊,MySQL本质就是一个关系型数据库,只要你会基本的SQL语句,哪个工具都可以轻松操作,就开发来说,大部分使用的都是第三方软件,下面我简单介绍3个非常适合管理MySQL的图形工具,分别是DBeaver、HeidiSQL和DataGrip,感兴趣的朋友可以尝试一下:

免费开源DBeaver

这是纯Java编写的一个通用数据库管理软件和SQL客户端,在个人桌面端非常流行,免费、开源、跨平台,只要是支持JDBC驱动的数据库这个软件都可以轻松管理和连接,不仅仅是MySQL,DB2、Oracle、MSSQL等主流数据库都能很好兼容,视图索引、ER图、触发器、存储过程等效果非常不错,如果你缺少一个免费、强大、开源的数据库管理软件,可以使用一下DBeaver,对于管理MySQL来说非常不错:

小巧灵活HeidiSQL

这是采用Delphi开发的一款简单迷你数据库管理软件,和DBeaver类似,HeidiSQL也完全免费开源,但目前仅限于Windows平台,支持MySQL、SQL Server、PostgreSQL等主流数据库,提供了一个简单易用的图形界面,可以轻松管理表、视图、存储过程、触发器,此外,支持SQL脚本导入导出、数据备份恢复,对于日常管理MySQL来说,也是一个非常不错的选择:

专业强大DataGrip

这是jetbrains公司开发的一款专业、多引擎数据库管理软件,在业界非常流行受欢迎,idea、clion等良心产品想必大家也非常了解,DataGrip几乎支持所有主流关系型数据库,DB2、MySQL、Oracle、PostgreSQL、MSSQL等都能很好兼容,日常建库建表、视图索引、数据导入导出等功能非常不错,除此之外,还自动集成智能代码填充、版本控制,对于管理MySQL数据库来说,可以说是一大利器,唯一不足就是需要付费购买版权:

当然,除了以上3个通用的数据库管理软件,还有许多其他MySQL管理软件,像Navicat等也都非常不错,只要你熟悉一下基本使用过程,很快就能掌握的,管理工具来说,没必要全部掌握,一两个就行,适合自己的才是最好的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

评论0 赞同0
  •  加载中...
DangoSky

DangoSky

回答于2022-06-28 15:36

完全没有必要。工具只是一种辅助,它可以让我们的工作变得更快捷,但是不要完全依赖工具;我们要把精力放在学习 MySQL 本身,而不是放在学习 MySQL 的工具上。


那么学习 MySQL 需要学习哪些知识呢,我大概整理了一下学习的内容和路线;因为我是程序员,所以这个路线是站在开发人员的角度整理的,如果是专业的 MySQL DBA,要掌握更多的知识。


01. 数据库基本操作和基本的 SQL

任何一个语言、软件、框架,我们都要先会使用,所以我们需要先掌握 MySQL 的基本操作和基本的 SQL。

  • 数据库的基本操作:MySQL 的安装、创建数据库、删除数据库;

  • 表和字段的基本操作:创建表、删除表、查看表结构、新增修改删除某一个字段、设置主键外键;这里要注意的一点,你不要学习通过工具完成这些操作,而是要会具体的 SQL 语句;比如 create table ...

  • 熟悉字段的基本类型:数值类型、日期和时间类型、字符串类型;最基础的认识,到后面的阶段对这些要有更深的了解。

  • 基本的 SQL 语句:了解 select、insert、update、delete 等基本操作,可以完成单表的增删查改。


02. SQL 语句

数据库的精髓就是 SQL 语句了,这也是需要我们主要了解的部分,基本的 SQL 语句已经在第一阶段学习了,那么这个阶段我们需要了解哪些呢?

  • 单表查询:这里就不是指 where column = xxx 这么简单的查询了,我们需要学习各种查询条件,包括大于小于、like、between and 等等,以及排序操作;

  • 聚合函数:比较常用的是 avg, count, max, min, sum 等函数;

  • 数据库函数:MySQL 自带了很多函数,一些常见的函数,我们也需要了解,包括数学函数、字符串函数、日期函数、条件判断函数等等;

  • 复杂的查询:包括各种关联查询(内连接、外连接、自连接)、子查询、分组查询(group by ... having...)等等;

  • 索引:这里我们要对索引有一个基本的认识,索引可以让查询语句执行的更快,我们要知道如何通过 SQL 语句创建索引;

  • 其他的包括:视图、存储过程、事务等等。


03. SQL 优化

第二阶段的 SQL 学习,主要是学习 SQL 怎么用,而到了这个阶段,需要知道如何用更合理。

  • 索引:对索引有更深入的了解,为什么用了索引查询就会变快?索引有哪些分类,常用的 B+ 树索引的数据结构是什么样的,索引对新增、修改、删除有什么样影响等等;

  • SQL 优化:写一个 SQL 语句很简单,让这个 SQL 执行的更快,就需要下写功夫了;要熟悉常用的 SQL 优化技巧,比如哪些错误的 SQL 写法可能会导致索引失效,如何查询和定位慢 SQL 等等;

  • 数据类型:对每一种数据类型的大小、范围、适用场景都有了解,不同的数据选择合适的数据类型,比如人的年龄这个字段,就没有必要选择 INT 类型了;


到了这个极端,对于开发人员算是比较合格的了,注意!只是合格,我在工作中见过不少程序员,只停留在第二阶段,他们只管实现很少关注效率,这对于项目来说都是隐藏的危机。

如果想要更进一步,我们要继续学习的内容还有很多,比如 MySQL 的存储引擎(每种存储引擎的区别)、事务特性、锁、隔离级别、部署方式等等,甚至一些和 MySQL 没有实质关联的内容,比如表结构的设计、表的拆分、各种数据库中间件等等。

要学的内容有这么多,我们没有必要把过多的精力放在工具的学习上。


我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

评论0 赞同0
  •  加载中...
codergarden

codergarden

回答于2022-06-28 15:36

我觉得对于MySQL,掌握三种操作方式就够了。

命令行界面

这是基本操作,能够在命令行下进行数据库的操作,包括但不限于数据库、表、索引、存储过程的CURD。

HeidiSQL

开源免费的PC端操作MySQL的软件,之所以推荐它,因为它是MariaDB在windows下默认的安装软件。

phpMyadmin

phpMyAdmin是最常用的MySQL维护工具,是一个用PHP开发的基于Web方式架构在网站主机上的MySQL管理工具,支持中文,管理数据库非常方便。

评论0 赞同0
  •  加载中...
chanjarster

chanjarster

回答于2022-06-28 15:36

没必要。作为基础入门,掌握下面几点就可以了。

  1. CRUD
  2. 存储过程
  3. 索引
  4. 备份
  5. 主从

评论0 赞同0
  •  加载中...
RobinQu

RobinQu

回答于2022-06-28 15:36

前端,后端,运维……分类太多。术有专攻,你不加前提就问是否需要全部掌握,很难回答

评论0 赞同0
  •  加载中...
Render

Render

回答于2022-06-28 15:36

我是一个运维,作为我来说,工具其实不重要,包括服务器监控,其实那些炫酷的图形界面是给别的人看的,真正排查问题还是用命令行监控更有用。mysql也一样,重点应该放在学习sql本身,也就是说重点熟练终端上的sql操作,只要这个熟练了,用什么sql工具都是一样的容易。

评论0 赞同0
  •  加载中...
amuqiao

amuqiao

回答于2022-06-28 15:36

你可以多了解一点知识点,有备无患。

数据备份是数据容灾的最后一道防线,即便有着两地三中心的架构,备份也依然重要。如果备份出问题,备份时影响了交易业务,备份数据无法恢复,这些也是企业难以承受的。所以选择合适的备份工具尤为重要。

每个企业级数据库都会有配套的备份工具,MEB(MySQL Enterprise Backup)就是MySQL企业版中非常重要的工具之一,是为企业级客户提供的数据备份方案。

Xtrabackup一直作为MEB 开源版备胎而存在,从MySQL 8.0开始情况可能会变得有所不同。

在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB备份/恢复体验会更好,目前xtrabackup还不支持这些特性。

MySQL 企业版还有哪些功能?

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<