成为MySQL专家的最快方式?

成为MySQL专家的最快方式?,sql,mysql,Sql,Mysql,我已经使用MySQL很多年了,直到去年左右,主要是在较小的项目上。我不确定是语言的性质还是缺少真正的教程让我感觉不确定我写的东西是否适合优化和扩展 虽然我自学了PHP,但我对自己和我编写的代码很有信心,很容易将其与他人进行比较,等等 对于MySQL,我不确定是否以及在什么情况下应该使用内部连接或左连接,也不知道它有大量的功能。虽然我已经为处理数千万条记录的数据库编写了代码,但我不知道它是否是最佳的。我经常发现,一个小的调整将使一个查询花费的时间少于原来的1/10。。。但是我怎么知道我当前的查询速

我已经使用MySQL很多年了,直到去年左右,主要是在较小的项目上。我不确定是语言的性质还是缺少真正的教程让我感觉不确定我写的东西是否适合优化和扩展

虽然我自学了PHP,但我对自己和我编写的代码很有信心,很容易将其与他人进行比较,等等

对于MySQL,我不确定是否以及在什么情况下应该使用内部连接或左连接,也不知道它有大量的功能。虽然我已经为处理数千万条记录的数据库编写了代码,但我不知道它是否是最佳的。我经常发现,一个小的调整将使一个查询花费的时间少于原来的1/10。。。但是我怎么知道我当前的查询速度也不慢呢

我想在这个领域对优化数据库和可伸缩性的能力充满信心。使用不是问题——我每天都以多种不同的方式使用它

所以,问题是,路径是什么?读书?网站/教程?建议?

成为某方面专家的唯一途径是经验,这通常需要时间。还有一个比你更好的良师益友,教你所缺少的东西。问题是你不知道你不知道的。

是你的朋友之一。如果您学会使用此工具,您应该能够非常有效地优化查询

浏览MySQL手册,阅读Paul DuBois的MySQL书籍。 使用解释选择、显示变量、显示状态和显示进程列表。 了解查询优化器是如何工作的。 优化表格格式。 维护您的表格myisamchk,检查表格,优化表格。 使用MySQL扩展可以更快地完成任务。 如果您注意到需要一些 它在许多地方都起作用。 如果您真的不需要,请不要在表级或列级使用GRANT 信息技术
我不知道麻省理工学院开放式课程是否有关于数据库的内容。。。你知道什么?它们是:


我建议将其作为仅基于MITs声誉的一个来源。如果你能在大学里学习一门正规课程,你会发现这很有帮助。此外,对基本离散数学/逻辑的良好理解当然也不会有什么坏处。

研究和经验-如果你没有足够的项目来保证研究,那么就去做吧。用相关数据制作三个表格,并组成场景

例如

制作电影及其数据的表格

制作用户列表

为用户制作评分表

花时间学习连接是如何工作的,如何在一个查询中获得特定分级范围的电影,如何搜索电影表,如,regex-如前所述,使用explain查看不同的事情如何影响速度。好好享受这一天;我向你保证 它的处理能力将大大提高


如果您仍在为案例场景而挣扎,请从这里开始寻找问题,并亲自尝试这些场景

正如其他人所说,时间和实践是唯一真正的方法

更实际地说,我发现这对我个人来说是个奇迹。在编写高效的查询方面,学习阅读这篇文章的输出可能是我最大的一次飞跃


我发现的第二件非常有用的事情是,它描述了一种用于提取性能的相当正式的方法。这有点复杂,但在很多情况下都很有效。如果没有其他内容,它将让您更好地了解连接的处理方式。

从这样一个类开始:


然后使用所学知识创建和管理大量SQL数据库并运行查询。达到专家水平实际上是一种实践。当然,在练习之前,你需要先学习这些片段。

对-我同意,我花了3年半的时间做全职程序员,我觉得自己是许多其他领域的专家,其中一些领域的时间比MySQL少。我想进行下一步。FWIW,除了特定于MySQL的优化之外,您已经描述了通用SQL。如果您在查找教程或指南时遇到困难,可能是因为您尝试的搜索范围太窄了?您知道,我会说SQL,但我总是遇到这样一个事实:人们坚持认为SQL与其他功能有所不同,功能更强大。我很高兴你在这里也这么说。高级级别-看看哪些用户在评价电影时有最相似的品味。尽管这可能必须在存储过程或PHP中完成。