Dave Stokes 使用 MySQL 已超过 15 年,自 2010 年以来一直担任其社区经理。在今年的 All Things Open 大会上,他将就 面向新手的数据编程 与 MySQL 进行演讲。
在本次采访中,他预告了他的演讲,并分享了一些有用的资源、所需技能以及 MySQL 初学者常遇到的问题。
您会向渴望探索 MySQL 的初学者推荐哪些资源?
在线 MySQL 手册 是一个非常棒的资源。还有许多书籍(查看您当地的二手书店)和在线资源。开源软件的一大优点是您可以尝试它,而只会损失您的机会成本。我建议,如果您要下载 MySQL,还应同时下载免费的 MySQL Workbench 程序,因为它是一个非常棒的工具。
MySQL 可以在 Windows、Linux 和 OS X 平台上运行。您也可以获取 Docker 镜像。它在较旧的硬件上也能出色运行,因此请从壁橱里拿出旧笔记本电脑试用一下。
学习和掌握 (My)SQL 是否需要特定的技能?
结构化查询语言(MySQL 中的“SQL”)是一种相当简单且易于学习的语言。遗憾的是,它的普及程度不如应有的那么广泛。许多人埋头苦干,对集合、关系理论或数据一无所知,然后想知道为什么他们的数据库查询很糟糕。SQL 代码相当容易掌握。MySQL 也相当容易学习,只需花费少量时间和精力即可获得惊人的结果。
现在,MySQL 支持一种新的协议,允许您在不使用 SQL 的情况下使用 MySQL。繁重的工作在幕后完成,开发人员可以使用他们选择的语言执行所有 CRUD(创建/替换/更新/删除)操作,而无需编写任何 SQL 查询。
您的部分会议将讨论如何保护数据免受 SQL 注入的攻击。不断增长的物联网是否给 MySQL 带来了新的安全挑战?
SQL 注入通常是糟糕的编程标准的产物。永远不要信任最终用户提供给您的内容,因为嵌入恶意内容太容易了。在处理用户数据之前,请务必清理、清理、再清理。许多开发人员只想获取数据并将其塞进没有模式的数据存储中——没有严格的数据检查——然后稍后才担心。这可能导致他们吞下相当于一颗定时炸弹的东西。随着要存储的数据量不断增加,不良做法会将您的数据仓库变成数字垃圾填埋场。
您能否在您的演讲之前给我们一些关于 N+1 问题的见解?这对 SQL 新手来说是一个重要的话题吗?
N+1 模式是次优的数据库访问方式。想象一下,您正在做早餐,并且每次购买一种食材都要单独去商店跑一趟。一次性购买所有食材会更具成本效益和速度。面向对象的开发教会了许多人将每一点数据都视为一个独特的项目,这使得人们很容易忽略数据库如何在一次操作中完成大量繁重的工作。太多的开发人员进行微小的、增量的迭代。 了解您的数据对于有效地处理数据非常重要。新手通常会忽略大局,而专注于一行代码。
对于想要以此为职业的数据库程序员,您有什么建议?
数据库最近经历了一场革命。许多 SQL 数据库现在都具有 NoSQL 功能。磁盘不再仅仅是旋转的金属盘片。微小的脚本语言现在需要访问关系数据,数据库制造商一直在添加新功能。您必须不断学习新知识,同时加强旧知识——非常具有挑战性。
数据本身一直在快速增长,不仅仅是因为物联网。当您在蜂窝塔之间移动时,您的手机会被跟踪。您的起搏器会将您的心脏信息发送给您的医生。越来越多的数据正在以越来越快的速度堆积。最好的基础是使用良好的规范化来正确架构您的数据。这就是航空公司如何每分钟处理数百万笔交易的原因。
没有人会到处说:“糟糕!数据库太快了!你能让它慢下来吗?”随着您的数据增长,不良的设计会被糟糕的性能所加强。您必须为未来做好计划。
最后,您听过的最好的 SQL 笑话是什么?
Little Bobby Drop Tables xkcd 是一个经典笑话。
还有一个 DBA 走进酒吧,看到两张桌子,问道:“我可以加入你们吗?”
乐观主义者认为杯子是半满的。悲观主义者认为杯子是半空的。DBA 意识到饮料已经喝完,冰块已经融化了。
评论已关闭。