• 技术文章 >数据库 >mysql教程

    MySQL管理与优化(7)_MySQL

    2016-06-01 13:08:33原创641

    索引的设计与使用

    -- 表mysql> select * from city;+----+----------+| id | city     |+----+----------+|  1 | ChengDu  ||  2 | NeiJiang ||  3 | HangZhou |+----+----------+-- 创建10个字节的前缀索引mysql> create index cityname on city (city(10));Query OK, 0 rows affected (0.21 sec)Records: 0  Duplicates: 0  Warnings: 0-- 查询mysql> explain select * from city where city = 'ChengDu'/G*************************** 1. row ***************************           id: 1  select_type: SIMPLE        table: city         type: refpossible_keys: cityname          key: cityname      key_len: 33          ref: const         rows: 1        Extra: Using where1 row in set (0.04 sec)-- 删除索引mysql> drop index cityname on city;Query OK, 0 rows affected (0.48 sec)Records: 0  Duplicates: 0  Warnings: 0

    设计索引的原则

    BTREE索引与HASH索引

    1. 只用于使用=或<=>操作符的等式比较。

    2. 优化器不能使用HASH索引来加速ORDER BY操作。

    3. MySQL不能确定在两个值之间大约有多少行。如果将MyISAM的表改为HASH索引的MEMORY表,会 影响一些查询的执行效率。

    4. 只能使用整个关键字来搜索一行。

    具体索引相关的细节可参考:

    http://dev.mysql.com/doc/refman/5.7/en/optimization-indexes.html

    不吝指正。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:
    上一篇:mysql---union和左连接的两倒面试题_MySQL 下一篇:mysql事务提交与回滚实例_MySQL
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• mysql中pid文件丢失怎么办• mysql多个条件怎么查询• mysql怎么查询慢的sql语句• mysql启动报错1067怎么办• mysql删除主键的语句是什么
    1/1

    PHP中文网