Monty说MySQL的优化(二)

2016-02-19 18:01 6 1 收藏

下面,图老师小编带您去了解一下Monty说MySQL的优化(二),生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - 编程语言 】

  六、优化应用

  应该集中精力解决问题。

  在编写应用时,应该决定什么是最重要的:

  速度

  操作系统间的可移植性

  SQL服务器间的可移植性

  使用持续的连接。.

  缓存应用中的数据以减少SQL服务器的负载。

  不要查询应用中不需要的列。

  不要使用SELECT * FROM table_name...

  测试应用的所有部分,但将大部分精力放在在可能最坏的合理的负载下的测试整体应用。通过以一种模块化的方式进行,你应该能用一个快速“哑模块”替代找到的瓶颈,然后很容易地标出下一个瓶颈。

  如果在一个批处理中进行大量修改,使用LOCK TABLES。例如将多个UPDATES或DELETES集中在一起。

  七、应该使用可移植的应用

  Perl DBI/DBD

  ODBC

  JDBC

  Python(或其他有普遍SQL接口的语言)

  你应该只使用存在于所有目的SQL服务器中或可以很容易地用其他构造模拟的SQL构造。www.mysql.com上的Crash-me页可以帮助你。

  为操作系统/SQL服务器编写包装程序来提供缺少的功能。

  八、如果你需要更快的速度,你应该:

  找出瓶颈(CPU、磁盘、内存、SQL服务器、操作系统、API或应用)并集中全力解决。

  使用给予你更快速度/灵活性的扩展。

  逐渐了解SQL服务器以便能为你的问题使用可能最快的SQL构造并避免瓶颈。

  优化表布局和查询。

  使用复制以获得更快的选择(select)速度。

  如果你有一个慢速的网络连接数据库,使用压缩客户/服务器协议。

  不要害怕时应用的第一个版本不能完美地移植,在你解决问题时,你总是可以在以后优化它。

  九、优化MySQL

  挑选编译器和编译选项。

  位你的系统寻找最好的启动选项。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  通读MySQL参考手册并阅读Paul DuBios的《MySQL》一书。(已有中文版-译注)

  多用EXPLAIN SELECT、SHOW VARIABLES、SHOW STATUS和SHOW PROCESSLIST。

  了解查询优化器的工作原理。

  优化表的格式。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  维护你的表(myisamchk、CHECK TABLE、 OPTIMIZE TABLE)

  使用MySQL的扩展功能以让一切快速完成。

  如果你注意到了你将在很多场合需要某些函数,编写MySQL UDF函数。

  不要使用表级或列级的GRANT,除非你确实需要。

  购买MySQL技术支持以帮助你解决问题:)

  十、编译和安装MySQL

  通过位你的系统挑选可能最好的编译器,你通常可以获得10-30%的性能提高。

  在Linux/Intel平台上,用pgcc(gcc的奔腾芯片优化版)编译MySQL。然而,二进制代码将只能运行在Intel奔腾CPU上。

  对于一种特定的平台,使用MySQL参考手册上推荐的优化选项。

  一般地,对特定CPU的原生编译器(如Sparc的Sun Workshop)应该比gcc提供更好的性能,但不总是这样。

  用你将使用的字符集编译MySQL。

  静态编译生成mysqld的执行文件(用--with-mysqld-ldflags=all-static)并用strip sql/mysqld整理最终的执行文件。

  注意,既然MySQL不使用C++扩展,不带扩展支持编译MySQL将赢得巨大的性能提高。

  如果操作系统支持原生线程,使用原生线程(而不用mit-pthreads)。

  用MySQL基准测试来测试最终的二进制代码。

来源:http://www.tulaoshi.com/n/20160219/1616644.html

延伸阅读
标签: PHP
下面的例子展示了如何通过 EXPLAIN 提供的信息来较大程度地优化多表联合查询的性能。 假设有下面的 SELECT 语句,正打算用 EXPLAIN 来检测: EXPLAIN SELECT tt.TicketNumber, tt.TimeIn, tt.ProjectReference, tt.EstimatedShipDate, tt.ActualShipDate, tt.ClientID, t...
4.6 管理员的优化 前面各段介绍了普通的MySQL用户利用表创建和索引操作,以及利用查询的编写能够进行的优化。不过,还有一些只能由MySQL管理员和系统管理员来完成的优化,这些管理员在MySQL服务器或运行MySQL的机器上具有控制权。有的服务器参数直接适用于查询处理,可将它们打开。而有的硬件配置问题直接影响查询处理速度,应该对它...
同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能。 安装好mysql后,配制文件应该在/usr/local/mysql/share/mysql目录中,配制文件有几个,有my-huge.cn...
当你执行管理员优化的时候,应该紧记以下规则: · 访问内存中的数据快于访问磁盘上的数据。 · 尽量把数据保存在内存中可以减少磁盘操作。 · 保留索引中的信息比保留数据记录的内容更重要。 我们在后面将讨论如何应用这些规则。 增加服务器缓存的大小。服务器拥有很多参数(系统变量),你可以改变这些参数来影...
但请注意,下面的优化并不是完全的。MYSQL实施了许多优化,但我没时间全部测试. MySQL的一些优化列在下面: 删除不必要的括号: ((a AND b) AND c OR (((a AND b) AND (c AND d)))) - (a AND b AND c) OR (a AND b AND c AND d) 常数调入: (ab AND b=c) AND a=5 - b5 AND b=c AND a=5 删除常数条件: (B=5 AND B=5) OR (B=6 AND 5=5) O...

经验教程

155

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部