易截截图软件、单文件、免安装、纯绿色、仅160KB

MySQL 索引概述 hust ei

本文介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。本文摘自《MySQL 5权威指南》(3rd)的8.9节。(2007.07.05最后更新)
    索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
    注:[1]索引不是万能的!索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。[2]另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。
    从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。
    1. InnoDB数据表的索引
    与MyISAM数据表相比,索引对InnoDB数据的重要性要大得多。在InnoDB数据表上,索引对InnoDB数据表的重要性要在得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的基础。"数据行级锁定"的意思是指在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于)SELECT...LOCK IN SHARE MODE、SELECT...FOR UPDATE命令以及INSERT、UPDATE和DELETE命令。
    出于效率方面的考虑,InnoDB数据表的数据行级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。如果没有合适的索引,则行锁变成表锁!
    2. 限制
    如果WEHERE子句的查询条件里有不等号(WHERE coloum != ...),MySQL将无法使用索引。
    类似地,如果WHERE子句的查询条件里使用了函数(WHERE DAY(column) = ...),MySQL也将无法使用索引。
 &nb


相关文档:

mySQL的中文字符处理

1.首先,设置数据库支持中文gb2312/gbk。
具体方法:
打开mySQL文件夹,修改my.ini配置文件。
[client]
port=3306
default-character-set=gb2312
以及
[mysqld]下的
default-character-set=gb2312
修改,保存,重启。若设为System服务,可以在控制面板-管理工具-服务中找到mySQL服务,重启。
2.保证Web ......

用特殊的MySQL运算符获得更多数据比较功能

用特殊的MySQL运算符获得更多数据比较功能
如果你在最近进行过SELECT或UPDATE查询,那么你很可能用到过一个或者多个MySQL的比较运算符来限制查询的输出结果。比较是大多数SELECT查询不可分割的一部分,而MySQL为这一功能提供了很多函数;根据最近一次统计,它有超过20个这样的运算符和函数,从著名的=和LIKE到更加难懂的NO ......

mysql 单引号 双引号

今天在写一条sql语句的时候,用的双引号,sql语句执行错误。记的同事问我mysql语句中的单引号和双引号有区别吗?回答是没有区别。
今天特地查了查,还是有点区别的。
mysql中的一段说明:
在mysql中,使用单引号和双引号俩种表达方法是一样的,尽管使用单引号的表达方法符合ANSI-SQL/92标准。
如果在字符串里有引号,则 ......

MySQL server has gone away 的解决办法

有时候使用MySQL(和PHP搭配之最佳组合)命令行导入备份时会出现“MySQL(和PHP搭配之最佳组合) server has gone away”错误,这可能是因为其中一些insert语句的大小超出了MySQL(和PHP搭配之最佳组合)目前设置的缓冲区大小。
解决办法
1.使用phpmyadmin 备份MySQL(和PHP搭配之最佳组合)的时候,只选择
数据: ......

mysql安装的过程

   今天重新装了一下mysql数据库,截止到现在已耗时2:30,郁闷!!!!(我原来不知道装过多少次mysql)
   所以我决定,把关于mysql数据库的初始化操作介绍一下

    1.安装mysql数据库
       http://www.duote.com/tech/1/2430_1.html
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号