Navicat for MySQL与MySQL-Front比较

Navicat for MySQL与MySQL-Front比较,第1张

前言       MySQL GUI工具很多 本文就常用的Navicat for MySQL与MySQL Front的特色功能做一个详细介绍与比较

(一)MySQL Front

MySQL Front是一款小巧的管理Mysql的应用程序 其主要特性包括多文档界面 语法突出 拖拽方式的数据库和表格 可编辑/可增加/删除的域 可编辑/可插入/删除的记录 可显示的成员 可执行的SQL脚本并提供与外程序接口 保存数据到CSV文件等

由于 年 月 日MySQL Front曾经宣布停止一段时间开发 后来官网改名

最新版本 ( 年 月 日) 下载后可以试用 天

      特色功能介绍        ● 高程度的相容性       ● 内部密集的使用Windows API 以确保以兼容未来的Windows版本       ● 支持MySQL数据库开始版本        ● 直接访问数据库 而不使用的MySQL的DLL 以减少安装和连接问题       ● 禁止外部HTTP隧道访问数据库       ● 拖曳和复制 粘贴支持       ● 有效地使用 可通过键盘或鼠标       ● 非常快 高效率及多语句支持       ● 语言设置(多于 种语言提供 Unicode的支持)       ● 支持BLOB 数据类型

    缺点:        ● 客户端使用SET NAMES设置字符集 如中文显示set names gbk SQL Editor不能用于处理mysql数据库与mysql front之间的编码       ● 导入SQL文件的时候出现错误 SQL文件是可读的不能写或数据库版本问题        ● 客户端不能处理 创建存储过程/创建函数/创建视图/创建事件 因为客户端要使用Delimiter语句 MySQL Front不能实现        ● 日期仅支持从 /Jan/ 开始以后的        ● 无符号的Bigint值仅支持 位(不能大于 )       ● 每个表仅支持 条记录        ● 支持BLOB 数据类型

(二)Navicat for MySQL

Navicat for MySQL是一个强大的MySQL数据库服务器管理和开发工具 它可以与任何 或以上版本的MySQL一起工作 并支持大部分的MySQL最新功能 包括触发器 存储过程 函数 事件 视图 管理用户 等等 它不仅对专业开发人员来说是非常尖端的技术 而且对于新手来说也易学易用 其精心设计的图形用户界面(GUI) Navicat for MySQL可以让你用一种安全简便的方式快速并容易地创建 组织 访问和共享信息

Navicat for MySQL在三种平台上是可用的 微软Windows Mac OS X 和Linux *** 作系统 它可以使用户连接到本地/远程服务器 提供了几种实用工具 例如数据结构同步 导入/导出 备份和报告 使维护数据的过程很容易

图 Navicat for MySQL简体中文版界面

      除了常规的管理数据库对象外 Navicat for MySQL功能主要有       ● 多种格式的导入导出能力 使维护数据的过程很容易 并可以从ODBC导入数据 将MSSQL Oracle数据导入MySQL      ● 批量的工作调度处理 有力减轻了数据库管理员的负担       ● 快速地实现广域网远程连接 更加安全简便       ● 智能地构建复杂的SQL查询语句 提高开发效率

图 批量的工作调度处理任务

            Navicat for MySQL相比MySQL Front有其自身优势       ● 下载次数最多的MySQL图形用户工具 自 年初以来 Navicat已在世界各地被下载超过二百万次 并有超过五万个客户群用户       ● 支持Mysql数据库新对象 例如事件       ● 导入导出支持多达 种格式(slk dif wk wq rtf mdb sav ldif等特殊的格式)       ● 报表设计 打印及定制

图 创建报表

      ● 具有结构同步 数据同步功能而且速度快       ● 调度 创建Batch Job 设置任务调度 创建一个设定的计划批处理工作 以计划执行一个或多个定期的 指定开始及结束的日期及时间 批处理可以创建的对象包括查询 报表打印 备份 数据传送 数据同步 导入和导出 发送计划工作的电子邮件通知 产生通知电子邮件给你指定的收件人       ● 安装下载非常方便 占用内存少 运行速度很快       ● 简体中文版已经发布 且有中文技术支持论坛 中国大陆有授权销售代理商       图 Navicat for MySQL数据导出向导

更多资料请参考         Navicat用户中文论坛:    CN    Navicat for MySQL 天免费试用版下载:    _index asp

图 Navicat for MySQL数据同步

    缺点     ● 没有像MySQL Front那样的ER数据库模型工具 (可能不久就有了)    ● 数据同步与结构同步时注意保持数据库版本的一致性

lishixinzhi/Article/program/MySQL/201311/29425

一、转码失败

在数据写入到表的过程中转码失败,数据库端也没有进行恰当的处理,导致存放在表里的数据乱码

针对这种情况,前几篇文章介绍过客户端发送请求到服务端。

其中任意一个编码不一致,都会导致表里的数据存入不正确的编码而产生乱码。

比如下面简单一条语句:

set @a = "文本字符串"

insert into t1 values(@a)

变量 @a 的字符编码是由参数 CHARACTER_SET_CLIENT 决定的,假设此时编码为 A,也就是变量 @a 的编码。

2. 写入语句在发送到 MySQL 服务端之前的编码由 CHARACTER_SET_CONNECTION 决定,假设此时编码为 B。

3. 经过 MySQL 一系列词法,语法解析等处理后,写入到表 t1,表 t1 的编码为 C。

那这里编码 A、编码 B、编码 C 如果不兼容,写入的数据就直接乱码。

二、客户端乱码

表数据正常,但是客户端展示后出现乱码。

这一类场景,指的是从 MySQL 表里拿数据出来返回到客户端,MySQL 里的数据本身没有问题。客户端发送请求到 MySQL,表的编码为 D,从 MySQL 拿到记录结果传输到客户端,此时记录编码为 E(CHARACTER_SET_RESULTS)。

那以上编码 E 和 D 如果不兼容,检索出来的数据就看起来乱码了。但是由于数据本身没有被破坏,所以换个兼容的编码就可以获取正确的结果。

这一类又分为以下三个不同的小类:

1)字段编码和表一致,客户端是不同的编码

比如下面例子, 表数据的编码是 utf8mb4,而 SESSION 1 发起的连接编码为 gbk。那由于编码不兼容,检索出来的数据肯定为乱码。

2)表编码和客户端的编码一致,但是记录之间编码存在不一致的情形

比如表编码是 utf8mb4,应用端编码也是 utf8mb4,但是表里的数据可能一半编码是 utf8mb4,另外一半是 gbk。那么此时表的数据也是正常的,不过此时采用哪种编码都读不到所有完整的数据。这样数据产生的原因很多,比如其中一种可能性就是表编码多次变更而且每次变更不彻底导致(变更不彻底,我之前的篇章里有介绍)。举个例子,表 t3 的编码之前是 utf8mb4,现在是 gbk,而且两次编码期间都被写入了正常的数据。

3)每个字段的编码不一致,导致乱码和第二点一样的场景。不同的是:非记录间的编码不统一,而是每个字段编码不统一。举个例子,表 c1 字段 a1,a2。a1 编码 gbk,a2 编码是 utf8mb4。那每个字段单独读出来数据是完整的,但是所有字段一起读出来,数据总会有一部分乱码。

三、LATIN1

还有一种情形就是以 LATIN1 的编码存储数据

估计大家都知道字符集 LATIN1,LATIN1 对所有字符都是单字节流处理,遇到不能处理的字节流,保持原样,那么在以上两种存入和检索的过程中都能保证数据一致,所以 MySQL 长期以来默认的编码都是 LATIN1。这种情形,看起来也没啥不对的点,数据也没乱码,那为什么还有选用其他的编码呢?原因就是对字符存储的字节数不一样,比如 emoji 字符 "❤",如果用 utf8mb4 存储,占用 3 个字节,那 varchar(12) 就能存放 12 个字符,但是换成 LATIN1,只能存 4 个字符。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5898286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存