高级MySQL我是否没有抓住要点?

高级MySQL我是否没有抓住要点?,mysql,Mysql,我不确定这个问题是否有意义。但是我知道mysql的所有基本CRUD命令。这里和那里可能会多一点(外键等)。但是有很多关于mysql/dbms的书。我可以编写适当的查询,并得到我想要的所有结果。也许他们不是最有效率的,但我觉得很有效。这是因为我的应用程序还不是facebook,所以我不得不担心优化。还是我 我是不是没抓住要点?我还应该知道什么 非常感谢。如果你知道需要做什么,那么你现在知道的就足够了。然而,C.J.Date对关系数据库(以及其他类型的数据库系统)进行了杰出的讨论。无论如何,你都应该

我不确定这个问题是否有意义。但是我知道mysql的所有基本CRUD命令。这里和那里可能会多一点(外键等)。但是有很多关于mysql/dbms的书。我可以编写适当的查询,并得到我想要的所有结果。也许他们不是最有效率的,但我觉得很有效。这是因为我的应用程序还不是facebook,所以我不得不担心优化。还是我

我是不是没抓住要点?我还应该知道什么


非常感谢。

如果你知道需要做什么,那么你现在知道的就足够了。然而,C.J.Date对关系数据库(以及其他类型的数据库系统)进行了杰出的讨论。无论如何,你都应该担心优化问题。当然,如果你现在只有10个人在使用你的应用程序,这不是问题所在,但在未来,如果用户群增长,重写数据库结构真的是一件“麻烦事”,特别是如果在代码中使用的是未经数据库抽象的原始查询。

高级MySQL可能不仅仅是编写CRUD操作的查询。有时,您需要进行优化或执行各种维护过程,这确实需要您对正在使用的DBMS有深入的了解。如果处理中小型应用程序,您可能不会担心查询的性能以及数据库设计的健壮性和效率,但对于高度可扩展的应用程序,所有这些都是您必须考虑的因素

很好地了解CRUD语法。我建议您进一步了解关系设计、主键和候选键、索引等。这些主题对所有关系数据库都有意义,而不仅仅是MySQL

一般来说,mysql和其他RDBMS系统有很多人们不知道的特性。这很好,因为您可以很好地使用一部分功能,但是要处理难题或成为一名优秀的DBA,有大量的东西需要学习。当人们谈论数据库上的Advanced X时,这些都是他们想要的东西


为了回答您的问题,了解其他的功能和工具并不是一个坏主意。你可能会找到更好的方法来解决自己的问题,并发展出更好的技能来解决别人的问题。我也完全同意其他的答案,这些答案建议你提高对更高层次主题的知识,知道如何进行良好的数据库设计是极其重要的。

过早优化是万恶之源。专注于设计适当的逻辑数据库结构并正确地索引它们,这将使您走得更远。修改写得不好的查询总是比修改设计不好的数据库结构容易


在我看来,使用您的查询,并在需要优化时对其进行优化。至于查询,我们更关注于确保它们的安全性(请参见sql注入)。

数据库不仅仅是“放置东西的地方”。一旦你意识到这一点,你将开始充分利用它们的潜力。

哦,现在我明白了(问题)。我以为你的意思是“把‘高级’和‘MySQL’结合起来有什么意义?”

如果你必须在工作中使用MySQL,那么是的,你最好逐渐深入了解它,特别是它的缺点和缺陷是什么,以及工作中的其他人如何对那些不可能实现的事情做出假设

现在,我的“巨魔”:如果这只是你,使用一些更强大的。我不是微软的粉丝,但如果你使用的是Windows,那么使用SQL Server的启动成本确实很低。更好的是,如果您在*nix服务器上工作,您可以尝试PostgreSQL。多年来,他们一直非常认真地正确地实现一些古怪的小事情,如回滚、事务隔离、外键引用完整性、视图、函数(又称存储过程)。MySQL在过去的几年中有所改进,但仍然(IMHO)有些不成熟。2000年左右,我对它的印象是“xBASE的可靠性和SQL接口的易用性”。(我不是SQL语言本身的超级粉丝——也许我年纪太大了,不能真正把它当作“唯一可行的方法”)

我还应该知道什么

  • 更好地理解关系理论,从而编写更好的SQL。我现在很喜欢“C.J.Date”的新书,他是世界领先的关系模型专家

  • 实现和监控——当然是SQL注入,但也包括了其他问题,或者类似“SQL”之类的书籍。这是一个广泛的主题,并不特定于SQL,但我认为每个软件开发人员都有责任学习这些东西

  • 性能度量和-当您达到需要学习优化技术的程度时,您将如何知道

  • 数据库维护和恢复-

  • ,及

  • 部署和升级技术—如何在不中断服务的情况下对正在运行的应用程序或站点应用更改

  • 编写与多个RDBMS品牌协同工作的或多或少可移植的SQL。如果你需要支持另一个品牌,至少要了解需要重写的内容

  • 如何以及何时使用对象关系映射框架

  • 如何以及何时雇用。SQL是最好的通用数据管理范例,但还有其他技术更专门用于特定任务


我避免使用MySQL,就像一个严重的流感病毒,但我可以在这里添加一些见解。 MySQL的“高级”部分将涵盖的一个领域是定制

一般来说,SQL涉及的内容很多,MySQL不是现成的,也可以自定义。