Submitted by yejr on 周六, 2006/04/29 - 14:44
MySQL将记录数据和索引数据分别存放在不同的文件里。其他很多(几乎所有)数据库都将这记录和索引数据存在同一个文件中。我们相信MySQL的选择对于现在更大范围的系统更合适。
Submitted by yejr on 周五, 2006/04/14 - 09:00
当前MySQL已经支持 ISAM
, MyISAM
, MEMORY
(HEAP
) 类型表的表级锁了,BDB
表支持页级锁,InnoDB
表支持行级锁。
很多时候,可以通过经验来猜测什么样的锁对应用程序更合适,不过通常很难说一个锁比别的更好,这全都要依据应用程序来决定,不同的地方可能需要不同的锁。
Submitted by yejr on 周四, 2006/04/13 - 08:55
在一些情况下,MySQL可以直接使用索引来满足一个 ORDER BY
或 GROUP BY
子句而无需做额外的排序。
Submitted by yejr on 周四, 2006/04/13 - 08:54
在大多数情况下,可以通过统计磁盘搜索次数来估算查询的性能。对小表来说,通常情况下只需要搜索一次磁盘就能找到对应的记录(因为索引可能已经缓存起来了)。对大表来说,大致可以这么估算,它使用B树做索引,想要找到一条记录大概需要搜索的次数为:log(row_count) / log(index_block_length / 3 * 2 / (index_length + data_pointer_length)) + 1
。
Submitted by yejr on 周四, 2006/04/13 - 08:53
EXPLAIN tbl_name
或者:
EXPLAIN SELECT select_options
EXPLAIN
语句可以被当作 DESCRIBE
的同义词来用,也可以用来获取一个MySQL要执行的 SELECT
语句的相关信息。
-
EXPLAIN tbl_name
语法和 DESCRIBE tbl_name
或 SHOW COLUMNS FROM tbl_name
一样。
Submitted by yejr on 周一, 2006/02/27 - 19:12
(本文是Monty在O'Reilly Open Source Convention 2000大会上的演讲)
MySQL的优化
(本文是Monty在O'Reilly Open Source Convention 2000大会上的演讲)
[晏子 编译整理]
一、我们可以且应该优化什么?
硬件
操作系统/软件库
SQL服务器(设置和查询)
应用编程接口(API)
应用程序
--------------------------------------------------------------------------------
二、优化硬件
如果你需要庞大的数据库表(>2G),你应该考虑使用64位的硬件结构,像Alpha、Sparc或即将推出的IA64。因为MySQL内部使用大量64位的整数,64位的CPU将提供更好的性能。
对大数据库,优化的次序一般是RAM、快速硬盘、CPU能力。
页面
最近评论