zoukankan      html  css  js  c++  java
  • 关于mysql联合索引

    CREATE TABLE `uniontest` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `menuname` varchar(50) DEFAULT NULL,
      `url` varchar(200) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `u_index` (`menuname`,`url`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
    

      先建立数据库,把menuname和url设置为联合索引

    需要注意的几点:

    1、在插入数据的时候Mysql 对menuname和url两列同时做了检查唯一性

    如:

    INSERT INTO uniontest(`menuname`,`url`) VALUES('订单管理','aaa.php')  成功

    INSERT INTO uniontest(`menuname`,`url`) VALUES('订单管理','bbb.php')  成功

    INSERT INTO uniontest(`menuname`,`url`) VALUES('订单管理2','aaa.php') 成功

    INSERT INTO uniontest(`menuname`,`url`) VALUES('订单管理','aaa.php') 失败

    2、在查询的时候

    explain SELECT * FROM uniontest WHERE menuname = '订单管理'   用到索引

    explain SELECT * FROM uniontest WHERE menuname = '订单管理' AND url = 'aaa.php';   用到索引

    explain SELECT * FROM uniontest WHERE url = 'aaa.php'; 没有用到索引

    遵循了联合索引最左优先的原则。

  • 相关阅读:
    无限维
    黎曼流形
    why we need virtual key word
    TOJ 4119 Split Equally
    TOJ 4003 Next Permutation
    TOJ 4002 Palindrome Generator
    TOJ 2749 Absent Substrings
    TOJ 2641 Gene
    TOJ 2861 Octal Fractions
    TOJ 4394 Rebuild Road
  • 原文地址:https://www.cnblogs.com/gide/p/4468258.html
Copyright © 2011-2022 走看看