频道栏目
首页 > 安全 > Mysql > 正文
  • 5.1.2 存储引擎的含义

    第3章中着重强调了对于InnoDB的非主码索引来说,索引使用了主码的实际值,而不是指向底层数据行的指针。MyISAM使用了一种B-树索引的不同的实现方式,从下面的示例可以看出不同之处:mysql> ALTER TABLE artis...

    关键词: 5.1.2  存储  引擎 

  • 5.1.1 覆盖索引

    如果我们想查询所有在1969年出道的艺人的名字,可以运行下面的查询:mysql> SELECT artist_id, name, founded-> FROM artist-> WHERE founded=1969;我们的示例数据库比较小,这个表只有大约500 000行数...

    关键词: 5.1.1 

  • 5.1 更好的索引

    通过使用索引,查询的执行时间可以从秒的数量级减少到毫秒数量级,这样的性能改进能够为你的应用程序的性能带来飞跃。合理的调整你的索引对优化来说是非常重要的,尤其是对于高吞吐量的应用程序。即使对执行时间...

    关键词: 5.1 

  • 概述

    创建合适的索引是一种重要的优化技术。在第4章我们讨论了创建MySQL索引来改进各种查询的性能的基本方法。创建多列索引能够带来比单列索引更显著的性能提升。以下两种其他的索引技术也能够进一步提高查询性能。本...

    关键词: 概述 

  • 4.7 本章小结

    尽管创建索引的原则很简单,但是要选择在合适的列上创建索引,并且要判断在当前情况下添加索引带来的读数据性能的改进是否超过了对写数据性能的影响则不是那么容易。不管你的SQL语句有多么复杂,你都可以将一个S...

    关键词: 4.7 

  • 4.6.5 一个表上的多个索引

    正如本章介绍过的,默认情况下MySQL会对一个表只使用一个索引,但是有五种例外情况。在设计表、索引以及SQL语句之前认识到这个限制是很有好处的。未来版本的MySQL优化器的改进也会有助于弥补这些限制和不足。

    关键词: 4.6.5  一个  表上 

  • 4.6.4 基于函数的索引

    目前MySQL不支持基于函数的索引。而且,在已有的索引中使用函数会导致性能下降。MySQL支持部分列的索引,实际上就是索引左边的子串。我们将在第5章详细讨论这个问题。你也不能指定一个索引的相反序列,因为事实上...

    关键词: 4.6.4  基于  函数 

  • 4.6.3 索引的统计信息

    MySQL支持有限的索引统计信息,这些统计信息因存储引擎不同而不同。使用MyISAM存储引擎的话,ANALYZE TABLE命令会为数据库表生成统计信息。目前还没有办法指定采样率。当一个表第一次被打开,然后被某个方法修改...

    关键词: 4.6.3 

  • 4.6.2 指定QEP

    MySQL不支持为给定查询指定QEP。在MySQL中,没有办法为一个数据一直随时间变化的查询定义一个QEP,这也影响了对QEP的选择。也导致了需要为每个查询的执行计划确定QEP。

    关键词: 4.6.2 

  • 4.6 MySQL的限制和不足

    4.6 MySQL的限制和不足与其他关系型数据库产品相比,MySQL在使用和管理索引方面也有一些限制和不足。4.6.1 基于开销的优化器MySQL用基于开销的优化器来调整可能的查询树以创建最优的SQL执行路径。MySQL通过生成...

    关键词: 4.6 

  • 4.5.3 磁盘空间影响

    使用第2章介绍的INFORMATION_SCHEMA.TABLES查询可以查看本章使用的album表的大小。在添加索引之前:********************* 1. row ***********************table_name: albumengine: InnoDBformat: Compac...

    关键词: 4.5.3 

  • 4.5.2 DDL影响

    随着表大小的不断增长,对性能的影响也不断加大。例如,在主表上添加索引平均需要20~30秒。mysql> ALTER TABLE album ADD INDEX m1(album_type_id,country_id);Query OK, 553875 rows affected (21....

    关键词: 4.5.2 

  • 4.5.1 DML影响

    4.5 添加索引造成的影响尽管本章给出了很多示例说明添加索引可以优化SQL语句的性能,但是添加索引同时也会带来不小的开销。4.5.1 DML影响在表上添加索引会影响写操作的性能。这一点可以很明显地从本章使用的ar...

    关键词: 4.5.1 

  • 4.4.8 复杂查询

    本章的示例并不包含十个表的连接操作或者更复杂的查询。但本章以及第5章和第8章介绍的规则同样可以依次应用到单表中更复杂的查询上去。对于更复杂的查询我们使用同样的分析工具,所要做的就是把SQL语句拆开,分别...

    关键词: 4.4.8 

  • 4.4.7 查询提示

    MySQL中少数几个查询提示会影响性能。这些查询提示有些会影响到整个查询,而有些会影响到每个表索引的用法。1. 总查询提示所有总查询提示都会在SELECT关键字之后立刻产生。这些选项包括SQL_CACHE、SQL_NO_CACHE...

    关键词: 4.4.7 

  • 4.4.6 MySQL优化器的特性

    MySQL可以在WHERE、ORDER BY以及GROUP BY列中使用索引;然而,一般来说MySQL在一个表上只选择一个索引。从MySQL 5.0开始,在个别例外情况中优化器可能会使用一个以上的索引,但是在早期的版本中这样做会导致查...

    关键词: 4.4.6  MySQL  优化 

  • 4.4.5 合并WHERE和ORDER BY语句

    我们已经通过示例演示了如何使用索引优化数据行的限制条件,以及如何使用索引优化排序结果。MySQL还可以利用多列索引执行上述两种操作。mysql> ALTER TABLE album ADD INDEX (name);mysql> EXPLAIN SELE...

    关键词: 4.4.5  合并  WHERE 

  • 4.4.4 多个列上的索引

    虽然索引可以包含多列,但实际上对索引的效率会有所限制。索引是用于改进性能的关系模型的一部分。索引的行的宽度应该尽可能的短,这样就可以在一个索引数据页面中包含更多的索引记录。这样做的好处是可以读取尽...

    关键词: 4.4.4 

  • 4.4.3 创建更好的索引

    我们可以在国家和专辑类型列上创建多列索引,这样优化器就可以得到更多信息。请看下面的示例:mysql> ALTER TABLE album ADD INDEX m1(country_id, album_type_id);然后我们重新运行下面的SQL语句可以得到...

    关键词: 4.4.3  创建  更好 

  • 4.4.2 多列索引的语法

    创建多列索引的语法和之前相同,唯一不同的是需要指定该索引是要跨越多列的:ALTER TABLE <table>ADD PRIMARY KEY [index-name](<column1>,<column2>...);ALTER TABLE <table>ADD [UNIQUE] KEY|INDEX ...

    关键词: 4.4.2 

排行
热门
论坛推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站