源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

MySQL结合使用数据库分析工具SchemaSpy的方法

  • 时间:2022-09-19 09:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:MySQL结合使用数据库分析工具SchemaSpy的方法
 近来,我和一帮老客户一起工作,他们让花时间给他们说一下在他们新环境中使用的新工具。其中,我发现的一个非常有用的工具是[url=http://schemaspy.sourceforge.net/]SchemaSpy[/url]。 SchemaSpy是Java开发的的工具(要求java 5或更高版本的支持),主要用来分析数据库中数据模型的元数据,并且能生成基于浏览器可视化的显示。通过点击就可了解数据表的层次结构,父子表关系等,主要通过HTML 链接或者实体关系图来表达。它也被设计成用来帮助解决由于约束而导致的数据库关联失败的迟钝错误。 我所喜欢ERD工具所能做的一件事是能快速的生成一个图形表达,来展现数据库那个表被引用最多,那些表已经被代替了是可以删除的(为什么要保存你不需要的的数据呢?)。通过了解数据库表关系而不是仅仅看查询语句,这可以加快的开始步伐,并且还促进开发的过程使其更有效。SchemaSpy的另一个优点是,他是一个命令行工具,在每次执行后才生成html页面,所以特别适合用于crontab中,使得模型改变后能自动调整页面。很不错,是吧? 这个工具使用起来简单明了,可以帮你做很多的事。主要是,如果你的数据库有一个外键,你就偷着乐吧,如果没有,也不要太绝境,你还有更多的工作等着你。绝大多数情况下,SchemSpy可以出色的完成任务,但是有时候你需要以元数据文件的形式给它一点点的信息。 [b]安装SchemaSpy及其相关[/b]     下载 [url=http://sourceforge.net/projects/schemaspy/files/]SchemaSpy最新版的jar文件[/url](书写本文时的版本是5.0.0)     确认你有一个能运行于你的操作平台的Java JRE     你需要一个你所用数据库的Java驱动——我在使用 [url=http://dev.mysql.com/downloads/connector/j/]MySQL Connector/J[/url]     安装[url=http://www.graphviz.org/]graphiz[/url] 包 [b]创建 mysql.properties文件[/b] 当需求尚不明确时,我喜欢这样建立一下,以便让命令行能又短又整洁。这是我为我的Percona Server 5.6.10沙箱所使用的属性文件:
[url=http://schemaspy.sourceforge.net/unifieddb/xml/characters.meta.xml]访问[/url]。 [b]运行SchemaSpy[/b] 下面的语法是连接MySQL数据库,SchemaSy同时对其他大多数流行的关系数据有很好支持。
java -jar schemaSpy_5.0.0.jar -t mysql -u msandbox_ro -p msandbox -meta schemaspy.meta.xml -o /var/www/schemaspy/

-o选项,标识SchemaSpy的输出文件目录,要确定这个目录可以被web服务器所操作。需要提及的是,我通过在jar包所在目录建立一个mysql.properties文件,这样我可以不用输入任何的服务器:端口以及数据库名称的信息。 [b]浏览SchemaSpy输出[/b] 三个表的完整的关系视图如下图所示: [img]http://files.jb51.net/file_images/article/201506/2015625113149215.png?2015525113157[/img] [b]收尾感想[/b] 尽管我提及到了关系栏,SchemaSpy最有用的功能。为了避免SchemaSpy只有这个功能这样的假象,我要提及一下更多的功能栏: [list] [*]     表——名称,子表数量,父表,列计数,行计数,还有注解--大量用于高层次预览表大小以及一种快捷的方法是,用浏览的搜索属性定位到特定的表。[/*] [*]    限制——列出数据库中明确的外键限制(这不包括通过元数据文件配置的限制!)。[/*] [*]    异常——基于名字指出可能的字段/表的关系,没有索引的表,标识为可空的字段和唯一字段(吐了!),单列表,子增长字段的名称;空字符而不是实际sqlnull值的表;在发生重大错误时候,这可以作为一个大体的数据库检查项,或者细节需求的浏览。[/*] [*]    字段——库总所有字段的列表,很方便通过名称筛选来查看是否有忽略的明确限制,然后把它们写到你的元数据文件中。[/*] [*]    贡献——这是一个自由软件,John Currier请求得到你的捐献,一般它能有更多的理由来花费更多的精力和时间来维护这个软件,而不仅仅是他老婆的抱怨。[/*] [/list] 最后,你不要忘了,把配置好的SchemaSpy写到crontab来实现自动化。 如果正在使用其他的ERD工具,和SchemaSpy相比较怎么样?请通过评论畅所欲言。谢谢你有耐心读完本文。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部