sql - 成为 MySQL 专家的最快方法是什么?

标签 sql mysql

我多年来一直在使用 MySQL,直到去年左右,主要是在较小的项目上。我不确定是语言的性质还是我缺乏真正的教程让我不确定我正在写的东西是否是优化目的和扩展目的的正确方法。

虽然自学 PHP,但我对自己和我编写的代码非常有信心,可以轻松地将其与其他人进行比较等等。

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

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

那么,问题来了,路径是什么?看书?网站/教程?推荐?

最佳答案

EXPLAIN是你的 friend 。如果您学会使用这个工具,您应该能够非常有效地优化您的查询。

  • Scan the the MySQL manual and read Paul DuBois' MySQL book.
  • Use EXPLAIN SELECT, SHOW VARIABLES, SHOW STATUS and SHOW PROCESSLIST.
  • Learn how the query optimizer works.
  • Optimize your table formats.
  • Maintain your tables (myisamchk, CHECK TABLE, OPTIMIZE TABLE).
  • Use MySQL extensions to get things done faster.
  • Write a MySQL UDF function if you notice that you would need some function in many places.
  • Don't use GRANT on table level or column level if you don't really need it.

http://dev.mysql.com/tech-resources/presentations/presentation-oscon2000-20000719/index.html

关于sql - 成为 MySQL 专家的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2909747/

相关文章:

mysql - 有什么方法可以更改此 SQL 查询,使其不返回任何包含空格的结果?

sql - 是否有与 SQL Profiler 等效的 IBM Iseries/DB2?

MYSQL不使用主键连接

Python CSV 上传错误处理程序

mysql - SQL 查询速度当表具有类型为 "Text"的列时

MySQL日期相关查询

Sql Query 帮助从两个表中获取不匹配的记录

mysql - 如何使用索引将mysql datetime类型?

sql - 计算和比较 SQL Server 中的日期

mysql - Mercurial 和MySQL