MySQL数据库的索引

解读MySQL 索引基础 我们完全可以将索引可以看作是书本的目录,通过书本的目录查找对应的章节就会快一些,索引底层数据结构有b树、b+树、红黑树、哈希表、甚至是链表等,对于MySQL而言,无论Innodb还是MyIsam最左匹配原则算是MySQL的一个重点了,它会基于联合索引最左的字段进行排序,例如我们用字段a、b、c创建联合索引,他就会先通过a进行排序,如果a一样比较b,b再一样比较c这样,通过这样的比较机制生成一个有序的索引结构。 阅读详情

目录

1、索引的概念

2、索引的作用 

优点

缺点

3、创建索引的原则依据

4、索引的分类和创建 

​编辑 4.1普通索引

直接创建索引

修改表方式创建索引 

创建表时添加索引 

 删除索引

4.2唯一索引

直接创建唯一索引 

修改表方式创建 

创建表时指定索引 

4.3主键索引(和创建主键的方式一样) 

修改表方式创建

创建表时指定 

4.4 组合索引(单列索引与多列索引) 

直接创建索引

修改表的方式创建索引 

创建表的时候指定索引 

4.5 全文索引 

直接创建索引

修改表的方式创建索引

创建表时指定索引 

全文索引查询

5、查看索引 

 6、删除索引

6.1 删除主键索引 

6.2 删除非主键索引


1、索引的概念

  • 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于c语言的链表通过指针指向数据记录的内存地址)
  • 使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地然后访问相应的数据,因此能加快数据库的查询速度。
  • 索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容。
  • 索引是表中一列或者若干列值排序的方法。
  • 建立索引的目的是加快对表中记录的查找或排序。

2、索引的作用 

优点

  • 设置了合适的索引之后,数据库利用各种快速定技术,能够大大加快查询速度,这是创建索引的最主要的原因。
  • 当表很大或查询涉及到多个表时,使用索引可以成千上万倍地提高查询速度。
  • 可以降低数据库的I/O成本,并且索引还可以降低数据库的排序成本。
  • 通过创建唯一性索引,可以保证数据表中每一行数据的唯一性。
  • 可以加快表与表之间的连接。
  • 在使用分组和排序时,可大大减少分组和排序的时间。
  • 建立索引在搜索和恢复数据库中的数据时能显著提高性能

缺点

索引需要占用额外的磁盘空间。

  • 对于MyISAM引擎而言,索引文件和数据文件是分离的,索引文件用于保存数据记录的地址。 而InnoDB引擎的表数据文件本身就是索引文件。

在插入和修改数据时要花费更多的时间,因为索引也要随之变动。

3、创建索引的原则依据

索引虽可以提升数据库查询的速度,但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。

  • 表的主键、外键必须有索引。因为主键具有唯一性,外键关联的是主表的主键,查询时可以快速定位。
  • 记录数超过300行的表应该有索引。如果没有索引,每次查询都需要把表遍历一遍,会严重影响数据库的性能。
  • 经常与其他表进行连接的表,在连接字段上应该建立索引
  • 唯一性太差的字段不适合建立索引
  • 更新太频繁地字段不适合创建索引
  • 经常出现在 where 子句中的字段,特别是大表的字段,应该建立索引
  • 在经常进行GROUP BY、ORDER BY的字段上建立索引
  • 索引应该建在选择性高的字段上。(即重复性低的字段)
  • 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引

4、索引的分类和创建 

创建一个member表

create table member(id int(10) ,name varchar(10) ,cardid int(18) ,phone int(11) ,address varchar(50),remark text);

 4.1普通索引

最基本的索引类型,没有唯一性之类的限制。

直接创建索引

CREATE INDEX 索引名 ON 表名 (列名(length));
  • (列名(length)):length是可选项,下同。如果忽略length 的值,则使用整个列的值作为索引。如果指定,使用列的前length个字符来创建索引,这样有利于减小索引文件的大小。在不损失精确性的情况下,长度越短越好。
  • 索引名建议以“_index"结尾。

 

修改表方式创建索引 

 ALTER TABLE 表名 ADD INDEX 索引名(列名);

创建表时添加索引 

 CREATE TABLE 表名(字段1数据类型,字段2数据类型[,...],INDEX 索引名 (列名));

 

​drop index 索引名 on 表名; #直接删除索引
​alter table 表名 DROP index 索引名; #以修改表的方式删除索引

4.2唯一索引

与普通索引类似,但区别是唯一索引列的每个值都唯一。 唯一索引 允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。

直接创建唯一索引 

 CREATE UNIQUE INDEX 索引名 ON 表名(字段名);

修改表方式创建 

 ALTER TABLE 表名 ADD UNIQUE 索引名(字段名);

创建表时指定索引 

 CREATE TABLE 表名(字段1 数据类型,字段2 数据类型[...],UNIQUE 索引名(字段名));

4.3主键索引(和创建主键的方式一样) 

主键索引是一种特殊的唯一索引,必须指定为“PRIMARY KEY”。一个表只能有一个主键,不允许有空值。 添加主键将自动创建主键索引。

修改表方式创建

 ALTER TABLE 表名 add primary key(字段名);

创建表时指定 

create table 表名(字段1 XXX, 字段2 XXX, ...primary key(字段));

4.4 组合索引(单列索引与多列索引) 

可以是单列上创建的索引,也可以是在多列上创建的索引。需要满足最左原则,因为select 语句的where条件是依次从左往右执行的,所以在使用select 语句查询时where 条件使用的字段顺序必须和组合索引中的排序一致,否则索引将不会生效。

直接创建索引

 CREATE INDEX 索引名 on 表名(字段1,字段2,字段3);

修改表的方式创建索引 

 alter table 表名 add index 索引名(字段1,字段2, ..., 字段n);

创建表的时候指定索引 

CREATE TABLE 表名(列名1 数据类型,列名2 数据类型,列名3 数据类型, INDEX 索引名(字段1,字段2,字段3));

查询索引使用select查询注意where的最左原则。查询字段的顺序要和组合索引保持一致,才能生效。

4.5 全文索引 

适合在进行模糊查询的时候使用,可用于在一篇文章中检索文本信息。在MySQL5.6版本以前FULLTEXT索引仅可用于MyISAM引擎,在5.6版本之后innodb 引擎也支持FULLTEXT 索引。全文索引可以在CHAR、 VARCHAR 或者TEXT 类型(其余类型不可以)的列上创建。每个表一般只创建一个全文索引。

直接创建索引

create fulltext index 索引名 on 表名 (字段);

模糊查询只能匹配一个单词不能按照字母进行匹配

修改表的方式创建索引

alter table 表名 add fulltext 索引名 (字段);

创建表时指定索引 

create table 表名 (字段.... , fulltext 索引名 (字段));

全文索引查询

模糊查询只能匹配一个单词不能按照字母进行匹配

5、查看索引 

#能查看索引的字段和细节
show index from 表名;  
show keys from 表名;
#只能查看索引的字段和名称
show create table 表名;

字段    含义
Table    表的名称
Non_unique    如果索引不能包括重复词,则为0;如果可以,则为1
Key_name    索引的名称
seq_in_index    索引中的列序号,从1开始
column_name    列名称
collation    列以什么方式存储在索引中。在 MySQL中,有值'A'(升序)或 NULL(无分类)
Cardinality    索引中唯一值数目的估计值
sub_part    如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL
Packed    指示关键字如何被压缩。如果没有被压缩,则为NULL
Null    如果列含有NULL,则含有YES。如果没有,则该列含有NO
lndex_type    用过的索引方法(BTREE,FULLTEXT,HASH,RTREE)
comment    备注

 6、删除索引

除了删除主键索引,删除其他索引的方式是一样的。

6.1 删除主键索引 

alter table 表名 drop primary key;

6.2 删除非主键索引

drop index 索引名 on 表名;     #直接删除索引
 ​
alter table 表名 drop index 索引名;   #修改表的方式删除索引

史上最全的Mysql索引教程 索引是数据库中用来提高数据检索效率的数据结构。它类似于书籍的目录,可以帮助用户快速找到所需的数据,而不必扫描整个数据集。在数据库系统中,索引可以显著提高查询性能。所谓的存储引擎,说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MSQL存储引擎有 MyISAM、InnoDB、Memory,其中 InnoDB 是在 MySQL 5.5 之后成为默认的存储引擎。以下是简化版的mysql的结构图,其中,索引和数据是存储在存储引擎中的。 阅读详情

相关推荐

深入理解MySQL数据库索引

MySQL的索引是一种数据结构它可以帮助数据库高效地查询、更新数据表中的数据。索引通过一定的规则排列数据表中的记录,使得对表的查询可以通过对索引的搜索来加快速度。MySQL索引类似于书籍的目录,通过指向数据行的位置,**可以快速定位和访问表中的数据。**就像使用汉语字典的目录(索引)页,可以通过笔画、偏旁部首、拼音等排序的目录快速查到所需要的字。索引应该创建在高频查询的列上。索引需要占用额外的存储空间 – 每一个索引都会生成对应的一个索引树。

2401_83429250的博客 1082

MySQL数据库:索引

MySQL数据库的索引、索引分类、索引操作介绍

m0_63020222的博客 1075

【05】MySQL数据库的索引是什么,怎么用?详解与应用

索引(Index)是数据库中用于加速数据检索的一种数据结构。可以将其看作是书籍中的目录,通过索引可以快速找到相关数据的位置,从而避免全表扫描。在MySQL中,索引主要用于提高查询效率,但也会增加写操作的开销(因为插入、更新和删除数据时也需要更新索引)。索引是数据库性能优化的关键工具,通过合理使用索引可以显著提高查询效率。在使用索引时,要注意选择合适的索引类型,避免过度索引,并根据实际查询需求设计索引。此外,定期分析和优化索引,也是保持数据库高效运作的重要措施。

qq_35320456的博客 1887

mysql数据库索引

mysql数据库索引,简单总结编写

m0_46192647的博客 5073

【数据库】Mysql索引

1.1、索引的含义数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库中表的数据。索引的实现通常使用B树和变种的B+树(MySQL常用的索引就是B+树)。除了数据之外,数据库系统还维护为满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,这种数据结构就是索引。简言之,索引就类似于书本,字典的目录。1.2、为什么用索引?打个比方,如果正确合理设计使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。

长夜烛火的博客 1339

MySQL索引

MySQL索引

Mr.xing的博客 2104

MySQL数据库之索引

因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。需要满足最左原则,因为select 语句的where条件是依次从左往右执行的,所以在使用select 语句查询时where 条件使用的字段顺序必须和组合索引中的排序一致,否则索引将不会生效。唯一索引:与普通索引类似,但区别是唯一索引列的每个值都唯一。组合索引(单列索引与多列索引):可以是单列上创建的索引,也可以是在多列上创建的索引。创建唯一键或者创建唯一索引都可实现。

GaLiCHaoFan1的博客 5198

CKAD-CN 考试知识点分享(12) Secret - 1

步骤操作完成1提取 Deployment 中的硬编码 Secret 值✅2创建名为postgres的 Secret✅3修改 Deployment 使用引用 Secret✅4验证新 Pod 正常运行✅❌未删除原 Deployment✅(遵守要求)✅任务完成。敏感信息已从环境变量移出,安全地存储在 Kubernetes Secret 中。

轻的博客 632

Database学习 - mysql 数据库 索引

索引   索引在mysql 中也叫 '键',是存储引擎用来快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要. 索引优化应该是对查询性能优化最有效的手段了.索引能够轻易将查询性能提高好几个数量级.索引相当于字段的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页查询 索引的特点:   创建与维护索引...

dixian4894的博客 123

Gemini Enterprise免费试用攻略:解锁企业级AI平台的隐藏技巧与避坑指南

本文详细介绍了Gemini Enterprise免费试用的全流程攻略,包括注册优化、团队协作、资源管理和典型应用场景。通过解锁企业级AI平台的核心功能如Gemini 3.0 Pro模型和Nano Banana图像生成系统,帮助企业高效评估AI与业务的契合度。文章还提供了安全合规与数据管理的实用建议,确保试用过程顺畅无忧。

weixin_29233857的博客 657

在Windows11下安装完Ubuntu20.04双系统后配置环境的过程

在Windows11下安装完Ubuntu20.04双系统后配置环境的过程 1.NVIDIA驱动检测及安装 2.Anaconda的安装 3.安装cuda、cudnn、pytorch 4.其他报错

aaaccc444的博客 2424

MySQL 数据库如何创建索引、索引的语法格式是什么

在数据库中,索引可以提高数据的检索速度;MySQL 数据库提供了三种创建索引的方法:一、使用 CREATE INDEX 语句可以使用专门用于创建索引的 CREATE INDEX 语句在一个已有的表上创建索引,但该语句不能创建主键。1.语法格式:CREATE ON ( [] [ ASC | DESC])2.语法说明如下::指定索引名。一个表可以创建多个索引,但每个索引在该表中的名称是唯一的。:指定要创建索引的表名。

momovi的博客 3046

吃透 AM32 无人机电调:从源码架构到工作原理的全方位解析(附实践指南)(上)

本文深入解析了AM32电调固件的源码架构与核心模块实现。文章首先介绍了AM32电调作为开源无人机;动力心脏的重要地位,随后从硬件基础、源码目录、模块划分三个维度构建解析框架。重点剖析了系统初始化模块的时钟配置、GPIO初始化和定时器设置,以及FOC控制模块的坐标变换算法、角度估算和SVPWM生成等关键技术实现。通过逐行代码解析,揭示了电调如何将飞控指令转换为电机驱动的完整过程,为开发者理解AM32电调工作原理提供了系统性指导。

bother3000的博客 6568

MySQL数据库索引

索引是帮助MySQL 高效获取数据的数据结构。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引向(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

new9232的博客 2047

电动转向系统 TAS 传感器

靠扭杆变形测力气,用霍尔效应算角度,借 ECU 给电机发指令。它就像 EPS 系统的 "神经末梢",把驾驶员的操作意图转化成电信号,再通过电机变成实实在在的助力,让我们开车既省力又安全。下次转动方向盘时,不妨想想这个藏在转向柱里的 "小传感器"—— 正是它的精准感知,才有了每一次顺畅的转向体验。

weixin_59825476的博客 4291

深入剖析STM32F103 I2C总线死锁问题及高效应对策略

本文深入剖析了STM32F103硬件I2C总线在轮询模式下发生死锁的根本原因,即硬件状态机的预取机制与软件响应速度不匹配。文章提供了高效的解决方案,包括在轮询模式下提前发送NACK/STOP信号、降低总线速度,以及治本的中断与DMA应用策略,帮助开发者根据项目需求选择最合适的方案,彻底解决这一经典硬件缺陷问题。

weixin_29184371的博客 206

MySQL_DB索引&B+树&SQL优化

数据库的索引就像一本书的目录,查数据快人一步,快速定位,精准打击! 什么是数据库的索引?

rookieLin8848的博客 482

【ComfyUI】Flux 图像扩展

本文介绍了一个基于Flux扩图技术的ComfyUI工作流,能够智能扩展图像尺寸并保持内容连贯性。该流程通过扩散模型与条件编码的结合,对图像边缘进行语义填充生成,适用于艺术创作、海报设计等场景。工作流包含图像加载、外扩填充、文本编码、扩散采样等核心节点,采用Flux1-fill-dev等专业模型确保生成质量。演示效果显示,系统能自然延伸原图内容,保持风格统一。该技术可广泛应用于插画扩展、摄影增强、游戏场景构建等领域,显著提升创意工作效率。

Mr数据杨 929

mysql数据库修改索引_mysql数据库之索引

1 引言在没有索引的情况下,如果要寻找特定行,数据库可能要遍历整个数据库,使用索引后,数据库可以根据索引找出这一行,极大提高查询效率。本文是对MySQL数据库中索引使用的总结。2 索引简介索引是一个单独的、存储自磁盘上的数据库结构,包含着对数据表里所有记录的引用指针。使用索引用于快速找出在某个或多个列中有一特定值的行,所有MySQL列类型都可以被索引,对相关列使用索引是提高查询操作速度的最佳途径。...

weixin_30621659的博客 1451

【NVIDIA-GB200-1】国内第一份生产环境实战安装配置教程,配置安装脚本,nvidia gb200配置教程-复制即用;gb200驱动安装

GB200 的高性能通信依赖。

jundao1997的专栏 705

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

MySQL数据库的常用索引

本文关键字:数据库、MySQL、索引的作用、常用索引。在使用数据库的过程中,经常会进行数据的查询。随着数据量的增大,查询的时间会变的原来越长,这就需要合理的建立索引来提高查询效率。

微光点亮星辰 9973

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

[MYSQL数据库]- 索引

索引由来,索引是怎么实现的,索引的创建,删除和信息的查询

分享技术 2244

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

mysql数据库之索引

目录一、索引的概念二、索引的的作用三、索引的副作用四、创建索引的原则依据五、哪些场景适合创建索引六、索引的分类及创建准备工作进入数据库并创建库进入库并创建表查看表的格式在表中插入内容并查看表中的内容创建普通索引直接创建索引唯一索引修改表创建方式创建表的时候指定主键索引创建表的时候指定 组合索引全文索引直接创建索引修改表方式创建创建表的时候指定索引查看索引删除索引直接删除索引删除主键索引总结索引分类索引创建Mysql死锁、悲观锁、乐观锁(1)索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所

fengmaohuli的博客 1244
上一篇: MySQL数据库管理
下一篇: MySQL数据库的事务
河马的学习日记
博客等级 码龄3年 652粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值