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

mysql索引详解,摘自《MySQL 5权威指南》

mysql索引详解,摘自《MySQL 5权威指南》
        本文介绍了数据库索引,及其优、缺点。针对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子句的查询条件里使用了函数(WH


相关文档:

MySql中的模糊查询

在MySql中的模糊查询和在MSSQL中的差不多,本记录主要是说在JDBC中使用PreparedStatement来构造一个模糊查询的语句。
模糊查询SQL语句:SELECT * from tableA WHERE colA LIKE '%要匹配的内容%'
构造PreparedStatement:
String sql = "SELECT * from tableA WHERE colA LIKE [-这里填什么呢?-]";
PreparedS ......

php向MySQL插入数据不全 解决方法

今天为了一些已有数据导入MYSQL的数据库,我写了一个很简单的PHP程序。
程序思路很简单,就是读一条数据,然后往MYSQL里插入一条。
结果总是发现 每次导入只能导入2000条,就自动停止了,而且没有任何提示。
在网上搜解决方案各种搜不到。
刚开始怀疑是内存缓冲给少了,调了一下,还是不行。。
最后发现一个规律,就是 ......

JDBC连接MySQL程序_by 老大&stone

      学java,有着太多的疑问和不解,经历了无数似乎简单到问题解决后突然发现自己那么sx的地步,然而就我的感觉,对每个初学者来说都无法避免的要经过这个让人痛苦到恶心呕吐到到昏厥的地步;这也许正是java进阶之前所谓昨夜西风凋敝树般的必经之途吧!
     废话不多说了,下面 ......

再次遭遇linux下mySql中文乱码问题

小结:
首先要找到mySql的配置文件
my.cnf
然后要改对地方
[client]和[mysqld]下同时加上default-character-set=utf8
然后记得需要重启MySql.且保证客户端的连接方式也是utf8.
预祝自己新的一年,吉祥如意,心想事成! ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号