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

MySQL查询优化技术系列讲座之使用索引(二)

 索引的代价
  一般来说,如果MySQL能够找到方法,利用索引来更快地处理查询,它就会这样做。这
意味着,对于大多数情况,如果你没有对表进行索引,就会使性能受到损害。这就是我所描绘的索引优点的美景。但是它有缺点吗?有的,它在时间和空间上都有开
销。在实践中,索引的优点的价值一般会超过这些缺点,但是你也应该知道到底有一些什么缺点。
  首先,索引加快了检索的速度,但是减
慢了插入和删除的速度,同时还减慢了更新被索引的数据列中的值的速度。也就是说,索引减慢了大多数涉及写操作的速度。发生这种现象的原因在于写入一条记录
的时候不但需要写入数据行,还需要改变所有的索引。数据表带有的索引越多,需要做出的修改就越多,平均性能的降低程度也就越大。在本文的"高效率载入数
据"部分中,我们将更细致地了解这些现象并找出处理方法。
  其次,索引会花费磁盘空间,多个索引相应地花费更多的磁盘空间。这可能导致更快地到达数据表的大小限制:
  · 对于MyISAM表,频繁地索引可能引起索引文件比数据文件更快地达到最大限制。
  · 对于BDB表,它把数据和索引值一起存储在同一个文件中,添加索引引起这种表更快地达到最大文件限制。
 
 ·
在InnoDB的共享表空间中分配的所有表都竞争使用相同的公共空间池,因此添加索引会更快地耗尽表空间中的存储。但是,与MyISAM和BDB表使用的
文件不同,InnoDB共享表空间并不受操作系统的文件大小限制,因为我们可以把它配置成使用多个文件。只要有额外的磁盘空间,你就可以通过添加新组件来
扩展表空间。
  使用单独表空间的InnoDB表与BDB表受到的约束是一样的,因为它的数据和索引值都存储在单个文件中。
  这些要素的实际含义是:如果你不需要使用特殊的索引帮助查询执行得更快,就不要建立索引。
  选择索引
  假设你已经知道了建立索引的语法,但是语法不会告诉你数据表应该如何索引。这要求我们考虑数据表的使用方式。这一部分指导你如何识别出用于索引的备选数据列,以及如何最好地建立索引:
 
 用于搜索、排序和分组的索引数据列并不仅仅是用于输出显示的。换句话说,用于索引的最好的备选数据列是那些出现在WHERE子句、join子句、
ORDER BY或GROUP BY子句中的列。仅仅出现在SELECT关键字后面的输出数据列列表中的数据列不是很好的备选列:
SELECT
col_a <- 不是备选列
from
tbl1 LEFT JOIN tbl2


相关文档:

hibernate在MYSQL中的使用

Hibernate 配置通过c3p0连接MYSQL
** 需要的包: c3p0_versionxx.jar
** hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  &n ......

【转】MySQL优化简明指南

一、在编译时优化MySQL 
如果你从源代码分发安装MySQL,要注意,编译过程对以后的目标程序性能有重要的影响,不同的编译方式可能得到类似的目标文件,但性能可能相差很大,因此,在编译安装MySQL适应仔细根据你的应用类型选择最可能好的编译选项。这种定制的MySQL可以为你的应用提供最佳性能。
技巧:选用较好的编 ......

收集一些mysql使用方法

1.linux下启动mysql的命令:
  mysqladmin start
/ect/init.d/mysql start (前面为mysql的安装路径)
2.linux下重启mysql的命令:
  mysqladmin restart
/ect/init.d/mysql restart (前面为mysql的安装路径)
3.linux下关闭mysql的命令:
  mysqladmin shutdown
  /ect/init.d/mysql&nbs ......

mysql数据库编码

1.去Mysql的安装目录下的 bin目录下 运行 MySQLInstanceConfig.exe
  在语言设置的页面有三个选项: standard character set
                              best support for multilingualism
          ......

搞定MySQL数据库中文模糊检索问题

搞定MySQL数据库中文模糊检索问题
作者: bianceng,  出处:IT专家网论坛, 责任编辑: 陈子琪, 
2009-10-28 07:00
  在 MySQL下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却没有a字符存在。
 
  在 MySQL下,在进行中文模糊检索时,经常会返回一些与 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号