Submitted by yejr on 周一, 2006/05/08 - 18:37
索引用于快速找到特定一些值的记录。如果没有索引,MySQL就必须从第一行记录开始读取整个表来检索记录。表越大,资源消耗越大。如果在字段上有索引的话,MySQL就能很快决定该从数据文件的哪个位置开始搜索记录,而无须查找所有的数据。如果表中有1000条记录的话,那么这至少比顺序地读取数据快100倍。注意,如果需要存取几乎全部1000条记录的话,那么顺序读取就更快了,因为这样会使磁盘搜索最少。
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/21 - 20:29
SHOW WARNINGS [LIMIT [offset,] row_count]
SHOW COUNT(*) WARNINGS
SHOW WARNINGS
显示了最后一个查询语句产生的错误、警告、提示等信息,如果它没有产生任何信息,则不显示任何信息。这个语句是在MySQL 4.1.0实现的。它的一个相关语句是 SHOW ERRORS
,不过它只显示错误信息,详情请看“14.5.3.10SHOW ERRORS
Syntax”。
随着执行语句的不同每次显示的信息都会产生变化。
SHOW COUNT(*) WARNINGS
语句显示了错误、警告、提示信息的总记录数。也可以通过取得变量 warning_count
的值来获得总错误记录数:
Submitted by yejr on 周二, 2006/02/21 - 20:29
SHOW [FULL] PROCESSLIST
SHOW PROCESSLIST
显示了有哪些线程在运行。也可以执行 mysqladmin processlist
命令来得到这些信息。如果有 SUPER
权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户运行的线程)。详情请看“14.5.4.3 KILL
Syntax”。如果没有使用关键字 FULL
,则只能看到每个查询的前100个字符。
从MySQL 4.0.12起,结果中还会以的 host_name:client_port
格式来显示通过TCP/IP方式连接过来的客户端的主机名,这就可以知道每个客户端都正在做什么。
Submitted by yejr on 周二, 2006/02/21 - 20:28
SHOW CREATE VIEW view_name
根据给定的试图名显示一个完整的 CREATE VIEW
语句。它是在 MySQL 5.0.1 中新增的。
mysql> SHOW CREATE VIEW v;
+-------+----------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------+
| v | CREATE VIEW `test`.`v` AS select 1 AS `a`,2 AS `b` |
+-------+----------------------------------------------------+
这个语法是在 MySQL 5.0.1 加上的。
页面
最近评论