MySQL优化 一、在编译时优化MySQL 如果你从源代码分发安装MySQL,要注意,编译过程对以后的目标程序性能有重要的影响,不同的编译方式可能得到类似的目标文件,但性能可能相差很大,因此,在编译安装MySQL适应仔细根据你的应用类型选择最可能好的编译选项。这种定制的MySQL可以为你的应用提供最佳性能。 技巧:选用较好的编译器和较好的编译器选项,这样应用可提高性能10-30%。(MySQL文档如是说) 1.1、...
MySQL优化 where优化主要是在SELECT中,因为他们最主要是在那里使用,但是同样的优化也可被用于DELETE和UPDATE语句。 但请注意,下面的优化并不是完全的。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) 常数调入: (a -> b>5 AND b=c AND a=5 删除常数条件: (B>=5 AND B=5) OR (B=6 AN...
MySQL优化 接下来我们要讨论的是数据库性能优化的另一方面,即运用数据库服务器内建的工具辅助性能分析和优化。 ▲ SHOW 执行下面这个命令可以了解服务器的运行状态: mysql >show status; 该命令将显示出一长列状态变量及其对应的值,其中包括:被中止访问的用户数量,被中止的连接数量,尝试连接的次数,并发连接数量最大值,以及其他许多有用的信息。这些信息对于确定系统问题和效率低下的原因是十分有用的。 SHOW命令除...
MySQL优化 正确的编译方法固然重要,但它只是提高MySQL服务器性能工作的一部分。MySQL服务器的许多参数会影响服务器的性能表现,而且我们可以把这些参数保存到配置文件,使得每次MySQL服务器启动时这些参数都自动发挥作用。这个配置文件就是my.cnf。 MySQL服务器提供了my.cnf文件的几个示例,它们可以在/usr/local/mysql/share/mysql/目录下找到,名字分别为my-small.cnf、my-medium.cnf、my-large.cnf以及my-huge.cnf。文件名字...
MySQL优化 (本文是Monty在O'Reilly Open Source Convention 2000大会上的演讲) 一、我们可以且应该优化什么? 硬件 操作系统/软件库 SQL服务器(设置和查询) 应用编程接口(API) 应用程序 -------------------------------------------------------------------------------- 二、优化硬件 如果你需要庞大的数据库表(>2G),你应该考虑使用64位的硬件结构,像Alpha、Sparc或即将推出的IA64。因为MySQL内部使用大量64位的整数,64位的C...
MySQL优化 mysql优化了 所以先说说这个,其实这个,很复杂,对于不同的网站,其在线,访问量,帖子数量,网络情况,以及机器配置都有关系,优化不是一次可以完成的,需要不断的观察和调试,以取得最佳效果下面我引用 Asiwish和老高的两篇优化措施,给大家看看 这些设置,只要通过修改 win2000的c:/winnt/my.ini 或者 win2003的 c:/windows/my.ini 来实现 首先,我们打开这个文件,先将最底部的密码项改成其它的,这个对数据库本身没...
MyISAM myisam_max_[extra]_sort_file_size足够大 delay_key_write减少io,提高写入性能 bulk_insert_buffer_size concurrent_insert 设置为2 read_rnd_buffer_size random scan 使用 read_buffer_size 顺序扫描表使用 key cache 的三种方式 key cache 预加载 SET GLOBAL hot_cache.key_buffer_size=16m SET BLOBAL cold_cache.key_buffer_size=16m CACHE INDEX example.top_message IN hot_cache CACHE INDEX example.event IN co...
三十一、事务的例子 MyIASM表如何进行事务处理: mysql> LOCK TABLES trans READ, customer WRITE; mysql> select sum(value) from trans where customer_id=some_id; mysql> update customer set total_value=sum_from_previous_statement where customer_id=some_id; mysql> UNLOCK TABLES; BDB表如何进行事务: mysql> BEGIN WORK; mysql> select sum(value) from trans where customer_id=some_id; ...
二十一、MySQL表高速缓存工作原理 每个MyISAM表的打开实例(instance)使用一个索引文件和一个数据文件。如果表被两个线程使用或在同一条查询中使用两次,MyIASM将共享索引文件而是打开数据文件的另一个实例。 如果所有在高速缓存中的表都在使用,缓存将临时增加到比表缓存尺寸大些。如果是这样,下一个被释放的表将被关闭。 你可以通过检查mysqld的Opened_tables变量以检查表缓存是否太小。如果该值太高,你应该增大表高速...
十六、MySQL如何次存储数据 数据库以目录存储。 表以文件存储。 列以变长或定长格式存储在文件中。对BDB表,数据以页面形式存储。 支持基于内存的表。 数据库和表可在不同的磁盘上用符号连接起来。 在Windows上,MySQL支持用.sym文件内部符号连接数据库。 十七、MySQL表类型 HEAP表:固定行长的表,只存储在内存中并用HASH索引进行索引。 ISAM表:MySQL 3.22中的早期B-tree表格式。 MyIASM:IASM...
十一、维护 如果可能,偶尔运行一下OPTIMIZE table,这对大量更新的变长行非常重要。 偶尔用myisamchk -a更新一下表中的键码分布统计。记住在做之前关掉MySQL。 如果有碎片文件,可能值得将所有文件复制到另一个磁盘上,清除原来的磁盘并拷回文件。 如果遇到问题,用myisamchk或CHECK table检查表。 用mysqladmin -i10 precesslist extended-status监控MySQL的状态。 用MySQL GUI客户程序,你可以在不同的窗口内...
六、优化应用 应该集中精力解决问题。 在编写应用时,应该决定什么是最重要的: 速度 操作系统间的可移植性 SQL服务器间的可移植性 使用持续的连接。. 缓存应用中的数据以减少SQL服务器的负载。 不要查询应用中不需要的列。 不要使用SELECT * FROM table_name... 测试应用的所有部分,但将大部分精力放在在可能最坏的合理的负载下的测试整体应用。通过以一种模块化的方式进行,你应该能用一个快速“...
一、我们可以且应该优化什么? 硬件 操作系统/软件库 SQL服务器(设置和查询) 应用编程接口(API) 应用程序 二、优化硬件 如果你需要庞大的数据库表(>2G),你应该考虑使用64位的硬件结构,像Alpha、Sparc或即将推出的IA64。因为MySQL内部使用大量64位的整数,64位的CPU将提供更好的性能。 对大数据库,优化的次序一般是RAM、快速硬盘、CPU能力。 更多的内存通过将最常用的键码页面存放在内存中可...
二十六、如何知晓MySQL解决一条查询 运行项列命令并试图弄明白其输出: SHOW VARIABLES; SHOW COLUMNS FROM ...G EXPLAIN SELECT ...G FLUSH STATUS; SELECT ...; SHOW STATUS; 二十七、MySQL非常不错 日志 在进行很多连接时,连接非常快。 同时使用SELECT和INSERT的场合。 在不把更新与耗时太长的选择结合时。 在大多数选择/更新使用唯一键码时。 在使用没有长时间冲突锁定的多个表...
数据库优化是一项很复杂的工作,因为这最终需要对系统优化的很好理解才行。尽管对系统或应用系统的了解不多的情况下优化效果还不错,但是如果想优化的效果更好,那么就需要对它了解更多才行。 数据库优化是一项很复杂的工作,因为这最终需要对系统优化的很好理解才行。尽管对系统或应用系统的了解不多的情况下优化效果还不错,但是如果想优化的效果更好,那么就需要对它了解更多才行。 1、优化概述 让系统运行得快得最重要...