MySQL之索引的使用

2023-11-14

SQL CREATE INDEX 语法:在表上创建一个简单的索引。

允许使用重复的值:

CREATE INDEX index_name
ON table_name (column_name)

如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:

CREATE INDEX PersonIndex
ON Person (LastName DESC) 
创建表的时候直接指定
          CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (ID) );

如果是字符串类型

CREATE INDEX indexName ON
mytable(username(length));
如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定length这样会加速索引查询速度,还会减少索引文件的大小,提高INSERT的更新速度。


SQL CREATE UNIQUE INDEX 语法
          在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。  

CREATE UNIQUE INDEX index_name
ON table_name (column_name)
组合索引
CREATE INDEX PersonIndex
ON Person (LastName, FirstName)
删除索引
DROP INDEX [indexName] ON mytable; 
举一个例:
CREATE TABLE People (
   last_name varchar(50)    not null,
   first_name varchar(50)    not null,
   dob        date                   not null,
   gender     enum('m', 'f')    not null,
);
在last_name、first_name和dob上建立一个组合索引。

注意:
使用索引有以下一些限制:
(1) 查询必须从索引的最左边的列开始。例如你不能利用索引查找在某一天出生的人。
(2) 不能跳过某一索引列。例如,你不能利用索引查找last name为Smith且出生于某一天的人。
(3) 存储引擎不能使用索引中范围条件右边的列。例如,如果你的查询语句为WHERE last_name="Smith" AND first_name LIKE 'J%' AND dob='1976-12-23',则该查询只会使用索引中的前两列,因为LIKE是范围查询。

如下情况可使用该索引:

(1)匹配全值(Match the full value):对索引中的所有列都指定具体的值。例如,上述索引可以帮助你查找出生于1960-01-01的Cuba Allen。

(2)匹配最左前缀(Match a leftmost prefix):你可以利用索引查找last name为Allen的人,仅仅使用索引中的第1列。

(3)匹配列前缀(Match a column prefix):例如,你可以利用索引查找last name以J开始的人,这仅仅使用索引中的第1列。

(4)匹配值的范围查询(Match a range of values):可以利用索引查找last name在Allen和Barrymore之间的人,仅仅使用索引中第1列。

(5)匹配部分精确而其它部分进行范围匹配(Match one part exactly and match a range on another part):可以利用索引查找last name为Allen,而first name以字母K开始的人。

(6)仅对索引进行查询(Index-only queries):如果查询的列都位于索引中,则不需要读取元组的值。

参考资料:

http://www.php100.com/html/webkaifa/database/Mysql/2013/0316/12223.html

http://blog.csdn.net/gzh0222/article/details/7564607

http://wenku.baidu.com/link?url=Ev2lb1_sF9LOR0tmPIJD3U4oYgSRx5Pj7X2AK0zvv9wJUZqm3WKnIpqhDNm0N4fp5J8BjSX1oNEwRmgUHbRCZGXy2w0GfpxepDLvxUbTNje
http://book.51cto.com/art/201012/240959.htm

http://book.2cto.com/201207/639.html



输入验证码进入下载列表选普通不限速下载
打开就知道怎么用,附名称和下载地址
fqrouter:http://www.400gb.com/file/77885845
EasyVPN:http://www.400gb.com/file/71244208
SuperVPN:http://www.400gb.com/file/71245132
Hola:http://www.400gb.com/file/71246083
电脑使用的webfreer,最新版本的,解压缩后直接使用
http://www.400gb.com/file/69045621



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL之索引的使用 的相关文章

  • 为什么 Clojure MySQL 查询结果中出现“M”

    我有一个返回一行的 Clojure 查询 下面是返回行 映射 的部分打印输出 employer percent 0 00M premium 621 44M 这两列在mysql表中分别是decimal 5 2 和decimal 7 2 为什么
  • MySQL 全文搜索之谜

    我们的网站上有一个使用 MySQL 全文搜索的简单搜索 但由于某种原因 它似乎没有返回正确的结果 我不知道这是否是 Amazon RDS 我们的数据库服务器所在的位置 或我们请求的查询的某种问题 这是数据库表的结构 CREATE TABLE
  • MySQL:记录之间的平均间隔

    假设这张表 id date 1 2010 12 12 2 2010 12 13 3 2010 12 18 4 2010 12 22 5 2010 12 23 如何仅使用 MySQL 查询找到这些日期之间的平均间隔 例如 此表上的计算将是 2
  • 如何备份整个MySQL数据库的所有用户、权限和密码?

    我需要备份整个 MySQL 数据库 其中包含所有用户及其权限和密码的信息 我看到选项http www igvita com 2007 10 10 hands on mysql backup migration http www igvita
  • Python Twisted 和数据库连接

    我们的工作项目包括同步应用程序 短期 和异步 Twisted 应用程序 长期 我们正在重构我们的数据库 并将构建一个 API 模块来解耦该模块中的所有 SQL 我想创建该 API 以便同步和异步应用程序都可以使用它 对于同步应用程序 我希望
  • 为什么不能将 MYSQL 函数传递到准备好的 PDO 语句中?

    在我看来 以下脚本应该有效 stmt db gt prepare UPDATE table SET status date modified stmt gt execute array 1 NOW 但经过时NOW 进入准备好的声明中 什么也
  • Navicat utf8 不适用于 mysql 数据库

    我目前正在尝试合并两个不同步的表达式引擎数据库之间的数据更改 为此我选择使用 navicat 该网站在模板中大量使用希腊字符集 当我在 phpmyadmin 中查看希腊语表字段数据时 我按预期看到了希腊语字符 当我将它们加载到 Navica
  • MySQL - 替换列中的字符

    作为一个自学成才的新手 我给自己制造了一个大问题 在将数据插入数据库之前 我将字符串中的撇号 转换为双引号 而不是 MySQL 实际需要的反斜杠和撇号 在我的表增长到超过 200 000 行之前 我认为最好立即纠正此问题 所以我做了一些研究
  • 展平具有未知列数的子/父数据

    我正在努力寻找存储和表示 SQL MySQL DB 和 C Windows 表单中的数据的最佳方法 我的数据映射到如下所示的类时 public class Parent public string UniqueID get set Key
  • mysql计算唯一行值

    TABLE quotation id clientid 1 25 2 25 3 25 4 25 5 26 如何查询有多少个不同的客户端TABLE quotation 我不希望重复的条目被计算多次 我需要的答案是2 在 1 行中 因为唯一的非
  • MYSQL 查询 WHERE IN 与 OR

    我开发了一个使用 OR 查询的系统 SELECT FROM tableA JOIN tableB ON idA idB WHERE idA 1 OR idA 2 OR idA 3 OR idA 4 OR idA 5 OR idA 100 与
  • 从 varchar(100) 类型获取时间(HH:MM AM/PM)格式

    如何将字符串 RD OT 07 30 转换为时间 我只知道如何将 07 30 AM 转换为时间 下面的代码给了我一个空白数据 id strtoupper POST id query mysql query SELECT STR TO DAT
  • AttributeError:尝试在 python 中运行 sqlalchemy 来管理我的 SQL 数据库时,“Engine”对象没有属性“execute”

    我有以下代码行不断给我一个错误 即引擎对象没有对象执行 我认为我一切都对 但不知道接下来会发生什么 似乎其他人也遇到了这个问题 重新启动他们的笔记本电脑就可以了 我正在使用 Pycharm 并已重新启动但没有任何解决方案 任何帮助是极大的赞
  • 从 Yii2 中的联结表检索数据

    我试图从 Yii2 中的连接表获取数据无需额外查询 我有 2 个模型 用户 组 通过连接表 user group 关联 在 user group 表中 我想存储此关系的额外数据 管理标志 将数据添加到连接表的最佳方法是什么 link 方法接
  • MySQL 获取时间优化

    o我有一个包含 200 万个寄存器的表 但它很快就会增长得更多 基本上 该表包含具有相应描述符的图像的兴趣点 当我尝试执行选择在空间上靠近查询点的点的查询时 总执行时间花费太长 更准确地说 持续时间 获取 0 484 秒 27 441 秒
  • PHP MySQL 查询带有 %s 和 %d

    SELECT COUNT AS test FROM s WHERE id d AND tmp mail lt gt 什么是 s and d for 这些是使用的格式符号 例如经过sprintf 例子 Output SELECT COUNT
  • grails/mysql 时区更改

    完成更改应用程序时区的最佳方法是什么 在我看来 必须发生以下情况 服务器 TZ 已被系统管理员更改 mysql必须重新启动 数据库中每个基于时间的列都必须使用convert tz 或等效方法更新所有值 因此 要么必须编写一个 mysql 脚
  • CakePHP - 获取上次运行的查询

    我想获取 CakePHP 运行的最后一个查询 我无法在 core php 中打开调试 也无法在本地运行代码 我需要一种方法来获取最后一个 sql 查询并将其记录到错误日志中而不影响实时站点 该查询失败但正在运行 像这样的事情会很棒 this
  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • MySQL #1093 - 您无法在 FROM 子句中指定用于更新的目标表“赠品”

    I tried UPDATE giveaways SET winner 1 WHERE ID SELECT MAX ID FROM giveaways 但它给出了 1093 您无法指定目标表 赠品 进行更新FROM clause 本文 ht

随机推荐

  • adb命令打开摄像头_Camera(一):查看Camera设备详细信息

    一 查看是否存在camera外设 设备节点 ls dev video 二 adb 查看camera 详细信息 2 1 adb shell dumpsys media camera 2 2 adb 查看camera 过滤信息 查看某一项参数
  • ROS下进行人脸识别并输出人脸坐标位置

    功能包下载链接 https download csdn net download qq 42145185 12265062 启动命令 roslaunch face tracker pkg start tracking launch 核心检测
  • solidity:智能合约结构介绍

    合约结构介绍 1 SPDX 版权声明 bytecode metadata 介绍 2 pragma solidity 版本限制 3 contract 关键字 4 import 导入声明 5 interface 接口 6 library 库合约
  • linux系统Web服务配置

    目录 一 什么是Web服务 二 Web服务的架构 三 Web服务的配置 1 安装Apache 2 配置Apache 3 安装MySQL 4 配置MySQL 5 安装PHP 6 配置PHP 四 Web服务的测试 五 Web服务的权限管理 六
  • 泛微oa 明细数据合计

    由于工作的原因接触到了泛微这个支持二次开发的系统 这个系统除了新建页面需要用到一次开发之外 主要采用react的语法来开发 大部分工作都只需要微量的代码支持 在一次开发当中需要统计某一些数据的计算 这也算是一个高并发的问题 因为用户总是不愿
  • 最全最好的Tracker地址目录

    我们在使用BT下载器 例如qBittorrent 下载东西 经常会遇到下载慢 甚至没有速度的情况 添加trackers可以帮助我们连接到更多的资源节点 解决下载没速度的问题 给下载加速 是必备操作 最全最好Trackers 地址目录 打开上
  • maven之 详细介绍

    Maven Build Resources 功能 主要用于打包资源文件 默认情况下maven只打包src main resource下的资源 通过 1 设置build resources 2 使用build helper maven plu
  • UUVsimulator仿真

    UUV Simulator Based on Gazebo 使用版本 Ubuntu20 04 ros Noetic gazebo 11 下载 https github com arturmiller uuv simulator tree n
  • Ubuntu14.04 安装opencv记录

    一 下载源码 安装软件版本为 opencv 3 2 0 zip 软件包 链接 https pan baidu com s 1d51XYqoUcWvbXjM2JW GDQ 提取码 c8vv 二 安装相关库与工具 1 安装相关库 sudo ap
  • MIPS 指令

    MIPS 指令 指令 功能 应用实例 LB 从存储器中读取一个字节的数据到寄存器中 LB R1 0 R2 LH 从存储器中读取半个字的数据到寄存器中 LH R1 0 R2 LW 从存储器中读取一个字的数据到寄存器中 LW R1 0 R2 L
  • 【计算机毕业设计】基于微信小程序的英语学习交流平台 英语学习交流小程序

    毕设帮助 源码交流 技术解答 见文末 一 前言 随着现代化信息技术的迅猛发展 不仅影响了人们的日常交流 也给语言学习者带来了一种新型的学习方式 在这种趋势下 应运而生了许多不同于传统意义上的学习方法 英语学习系统则是其中一种极具有代表的方式
  • 前端页面添加全局水印或指定页面添加水印

    前言 为了防止信息泄露或知识产权被侵犯 在web的世界里 对于图片文档等增加水印处理是十分有必要的 水印的添加根据环境可以分为两大类 前端浏览器环境添加和后端服务环境添加 今天介绍的就是通过canvas创建一张含有水印信息的背景图片 通过v
  • 「译」Web安全快速入门

    Web安全快速入门 几个Web开发人员必知的安全缩略语 原文 A quick introduction to web security 作者 Austin Tackaberry 发表时间 2018 8 15 译者 陈 昌茂 发表时间 201
  • python 调用JS 之 py_mini_racer 初体验

    前言 之前苦于 python 使用 execjs 调用JS里的函数时 没办法动态缓存JS里的环境 然后当时的思路是将动态变化的环境提取出来 然后在写进JS代码里进行持续调用 但是这样做实在是不够优雅 正文 就在昨天 群里的泰迪佬告诉了我这个
  • 机器学习实战—决策树算法

    文章目录 一 简介 二 决策树训练和可视化 2 1 决策树分类算法使用 2 2 决策树可视化 2 3 决策树预测流程 2 4 决策树估计类概率 三 CART剪枝训练算法 3 1 简介 3 2 Cart分类成本函数 四 基尼不纯度或熵 4 1
  • python中save 函数_超全Python图像处理讲解!花五天才整理的!

    文章目录1 1 打开图片和显示图片 1 2 创建一个简单的图像 1 4 图像旋转和格式转换 三 ImageChops模块 图像合成 四 ImageEnhance模块 色彩 亮度 Pillow模块讲解 一 Image模块 1 1 打开图片和显
  • ngnix配置集群负载均衡——upstream模块

    测试包下来让他以守护进程的方式运行 nohup java jar demo 1 jar nohup java jar demo 2 jar 阿里云盘 测试所需要的两个jar包 https www aliyundrive com s XMYx
  • 如何创建Silverlight 项目

    Silverlight Silverlight Tools 您可以使用已经掌握的技术和熟悉的工具创建基于 Silverlight 的应用程序 本主题介绍开发用于 Silverlight 3 的应用程序时可使用的各种工具 本主题包括下列各节
  • Markdown使用(MarkdownPad2 表格不显示处理)

    MarkdownPad2 表格不显示处理 1 添加表格的扩展 工具 选项 Markdown Markdown处理器 改为 Markdown 扩展 即可 2 在设置的过程中要注册markdownpad2 邮箱 Soar360 live com
  • MySQL之索引的使用

    SQL CREATE INDEX 语法 在表上创建一个简单的索引 允许使用重复的值 CREATE INDEX index name ON table name column name 如果您希望以降序索引某个列中的值 您可以在列名称之后添加