没有合适的资源?快使用搜索试试~ 我知道了~
MySQL最佳优化完美攻略
4星 · 超过85%的资源 需积分: 10 36 下载量 164 浏览量
2017-07-07
16:08:04
上传
评论
收藏 537KB PDF 举报
温馨提示
试读
14页
强烈推荐 MySQL最佳优化完美攻略
资源推荐
资源详情
资源评论
kider
1
目录
MYSQL 优化 ............................................................................................................ 1
1. 我们可以且应该优化什么? ................................................................................... 2
2. 优化硬件 ......................................................................................................... 2
3. 优化磁盘 ......................................................................................................... 2
4. 优化操作系统 ................................................................................................... 3
5. 选择应用编程接口 .............................................................................................. 3
6. 优化应用 ......................................................................................................... 3
7. 应该使用可移植的应用 ........................................................................................ 4
8. 如果你需要更快的速度 ........................................................................................ 4
9. 优化 MYSQLD .................................................................................................. 4
10. 编译和安装 MYSQL ......................................................................................... 5
11. 维护 ........................................................................................................... 5
12. 优化 SQL ..................................................................................................... 5
13. 不同 SQL 服务器的速度差别(以秒计) ................................................................ 6
14. 重要的 MYSQL 启动选项 ................................................................................... 7
15. 优化表 ........................................................................................................ 7
16. MYSQL 如何次存储数据 ................................................................................... 7
17. MYSQL 表类型 .............................................................................................. 8
18. MYSQL 行类型(专指 IASM/MYIASM 表) ............................................................ 8
19. MYSQL 缓存 ................................................................................................. 8
20. MYSQL 表高速缓存工作原理 .............................................................................. 9
21. MYSQL 扩展/优化-提供更快的速度 ...................................................................... 9
22. MYSQL 何时使用索引 .................................................................................... 10
23. MYSQL 何时不使用索引 ................................................................................. 10
24. 学会使用 EXPLAIN ....................................................................................... 10
25. 学会使用 SHOW PROCESSLIST ...................................................................... 11
26. 如何知晓 MYSQL 解决一条查询 ........................................................................ 11
27. MYSQL 非常不错 .......................................................................................... 11
28. MYSQL 应避免的事情 .................................................................................... 12
29. MYSQL 各种锁定 .......................................................................................... 12
30. 给 MYSQL 更多信息以更好地解决问题的技巧 ........................................................ 12
31. 事务的例子 ................................................................................................. 13
32. 使用 REPLACE 的例子 ................................................................................... 13
33. 一般技巧 .................................................................................................... 13
34. 使用 MYSQL 3.23 的好处 ............................................................................... 14
35. 正在积极开发的重要功能 ................................................................................ 14
MySQL 优化
(本文是 Monty 在 O'Reilly Open Source Convention 2000 大会上的演讲)
kider
2
1. 我们可以且应该优化什么?
硬件
操作系统/软件库
SQL 服务器(设置和查询)
应用编程接口(API)
应用程序
2. 优化硬件
如果你需要庞大的数据库表(>2G),你应该考虑使用 64 位的硬件结构,像 Alpha、Sparc 或即将推
出的 IA64。因为 MySQL 内部使用大量 64 位的整数,64 位的 CPU 将提供更好的性能。
对大数据库,优化的次序一般是 RAM、快速硬盘、CPU 能力。
更多的内存通过将最常用的键码页面存放在内存中可以加速键码的更新。
如果不使用事务安全(transaction-safe)的表或有大表并且想避免长文件检查,一台 UPS 就能够在电
源故障时让系统安全关闭。
对于数据库存放在一个专用服务器的系统,应该考虑 1G 的以太网。延迟与吞吐量同样重要。
3. 优化磁盘
为系统、程序和临时文件配备一个专用磁盘,如果确是进行很多修改工作,将更新日志和事务日志放
在专用磁盘上。
低寻道时间对数据库磁盘非常重要。对与大表,你可以估计你将需要:
log(行数)/log(索引块长度/3*2/(键码长度 + 数据指针长度))+1 次寻到才能找到一行。
对于有 500000 行的表,索引 Mediun int 类型的列,需要:
log(500000) / log(1024/3*2/(3 + 2))+1=4 次寻道。
上述索引需要 500000*7*3/2=5.2M 的空间。实际上,大多数块将被缓存,所以大概只需要 1-2 次
寻道。
然而对于写入(如上),你将需要 4 次寻道请求来找到在哪里存放新键码,而且一般要 2 次寻道来更
新索引并写入一行。
对于非常大的数据库,你的应用将受到磁盘寻道速度的限制,随着数据量的增加呈 N log N 数据级递
增。
将数据库和表分在不同的磁盘上。在 MySQL 中,你可以为此而使用符号链接。
条列磁盘(RAID 0)将提高读和写的吞吐量。带镜像的条列(RAID 0+1)将更安全并提高读取的吞吐量。
写入的吞吐量将有所降低。不要对临时文件或可以很容易地重建的数据所在的磁盘使用镜像或 RAID(除了
RAID 0)。
在 Linux 上,在引导时对磁盘使用命令 hdparm -m16 -d1 以启用同时读写多个扇区和 DMA 功能。
这可以将响应时间提高 5~50%。
在 Linux 上,用 async (默认)和 noatime 挂载磁盘(mount)。对于某些特定应用,可以对某些特定
表使用内存磁盘,但通常不需要。
kider
3
4. 优化操作系统
不要交换区。如果内存不足,增加更多的内存或配置你的系统使用较少内存。
不要使用 NFS 磁盘(会有 NFS 锁定的问题)。
增加系统和 MySQL 服务器的打开文件数量。(在 safe_mysqld 脚本中加入 ulimit -n #)。
增加系统的进程和线程数量。
如果你有相对较少的大表,告诉文件系统不要将文件打碎在不同的磁道上(Solaris)。
使用支持大文件的文件系统(Solaris)。
选择使用哪种文件系统。在 Linux 上的 Reiserfs 对于打开、读写都非常快。文件检查只需几秒种。
5. 选择应用编程接口
PERL:
可在不同的操作系统和数据库之间移植。
适宜快速原型。
应该使用 DBI/DBD 接口。
PHP:
比 PERL 易学。
使用比 PERL 少的资源。
通过升级到 PHP4 可以获得更快的速度。
C:
MySQL 的原生接口。
较快并赋予更多的控制。
低层,所以必须付出更多。
C++:
较高层次,给你更多的时间来编写应用。
仍在开发中
ODBC:
运行在 Windows 和 Unix 上。
几乎可在不同的 SQL 服务器间移植。
较慢。MyODBC 只是简单的直通驱动程序,比用原生接口慢 19%。
有很多方法做同样的事。很难像很多 ODBC 驱动程序那样运行,在不同的领域还有不同的错误。
问题成堆。Microsoft 偶尔还会改变接口。
不明朗的未来。(Microsoft 更推崇 OLE 而非 ODBC)
JDBC:
理论上可在不同的操作系统何时据库间移植。
可以运行在 web 客户端。
Python 和其他:
可能不错,可我们不用它们。
6. 优化应用
应该集中精力解决问题。
剩余13页未读,继续阅读
资源评论
- 蓝色天银2018-07-11还可以吧,分要得有点多
jiangsucsdn001
- 粉丝: 47
- 资源: 231
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功