数据库--索引、事务总结

DB-Day9笔记-用户权限&数据库备份&事务&索引&视图 帮助0基础的小伙伴入门和学习Mysql,感兴趣的小伙伴可以开始认真学习啦! 阅读详情

一、索引
(1)什么是索引
索引是一种特殊的数据库结构,它包含着对数据表里所有记录的引用指针,根据这个指针我们就可以找到这个指针所对应的记录。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。从某种程度上说,索引就相当于一本书的目录,根据这个目录中所写的页码我们就能更快的找到我们需要的内容。除了提高检索速度外,索引还可以强制表中的行具有唯一性,从而确保数据的完整性。
(2)索引要解决什么问题
数据库中的数据很多,比如说当我们在一个表中要查找一条记录的时候,就必须从头扫描这个表,看哪条记录是我们想要找的,这样查找就很慢。那么索引就是为了***加快查找的效率***。
缺点:如果在一个表中创建大量的索引,就会影响插入、删除、更新数据的性能,增加索引调整的成本,降低系统的响应速度。
(3)索引的底层数据结构
a)为什么不使用哈希表:
哈希表的查找过程:哈希表查找时,是把key代入哈希函数,通过哈希函数计算对应的下标,再根据下标找到对应的链表,再去遍历key是否相等。
哈希表只能处理相等的情况。
比如:select * from student where score=90.5
但是不能处理 select * from student where score>90.5 and score <95.5这样的情况
b)为什么不用二叉搜索树
二叉树的那个节点最多有两个分支,当有大量数据时,用二叉搜索树存储时,这棵树的高度就比较高,查找效率也不高。
c)什么是B树(也称作B-树),它的优势是什么
B树
B树是个有序的N叉树,它的每个节点可以存储多个数据,因此在存储大量数据的时候,树的高度就大大减小了。从这棵树的结构来看,一个节点的出度=该节点可以存储的数据数目+1。用专业一点的语言描述就是一个内结点x若含有n[x]个关键字,那么x将含有n[x]+1个子女。
d)什么是B+树,它的优势是什么
在B+树里面,非叶子节点不再存储数据,仅仅存在索引,而叶子节点用来存储具体的数据,并且最底层的数据之间从左到右是按照从小到大的顺序分布,并且是一个链表的结构。
B+树
从这棵树的结构来看,一个节点能存多少数据,那么它就有多少个子女。
索引加快了查询效率,减慢了插入、删除、修改效率(需要同步修改索引),也会占用格外的空间。
(4)索引的应用场景
索引适用在查找操作频繁,但插入、删除、修改操作都不频繁的场景。
(5)使用索引(举例)
a)在创建主码(Primary key)、唯一约束(unique)、外键(foreign key)时会自动创建索引;
b)查看索引:show index from 表名;
c)创建普通索引:create index from 索引名 on (表名)列名;
d)删除索引:drop index 索引名 on 表名
(6)索引的分类:
a)单值索引
b)唯一索引
c)主键索引
d)复合索引
e)覆盖索引
f)聚集索引
g)辅助索引
(7)索引什么时候失效
a)在where子句中进行null值判断
b)在where子句中进行不等于!=、<>的判断
c)在where子句中进行or值连接,因为只要有一个属性没有创建索引,就会失效
d)使用模糊查询,”%san"这样的
e)使用函数操作
二、事务
(1)什么是事务
将一组操作封装起来就是事务,称为一个共同的执行单元。
(2)事务的基本特性
a)原子性:事务中的若干操作,要么全部成功,要么全部不执行(其实这里并不是没有执行,而是说在执行的过程当中某个步骤出错,就把前面已经执行完毕的步骤回滚(roll back)。
b)一致性:执行事务前后,数据始终处于合法的状态。
c)持久性:事务一旦执行完成,此时对于数据的修改就是持久生效的,修改结果写入了磁盘中。
d)隔离性:多个事务并发执行时,事务之间不能相互干扰。
(3)事务并发操作可能会带来的问题
a)脏读:一个事务读取了另一个事务未提交的数据。事务A在修改表中的某个数据,事务B读取了修改后的内容,但是A并没有提交,此时B的操作就是脏读。
b)不可重复读:一个事务在执行过程中,两次读取到的数据不相同。事务A读取了某个数据,事务B修改这个数据,事务A再次读取,发现两次读到的结过不一样。
c)幻读:一次事务执行过程中,两次读到的结果集不一样。事务A读取了表中的记录数,事务B对整个表进行操作,比如说增加了一行记录,此时事务B再读,发现结果集不一样。
(4)事务的隔离级别
a)read uncommitted 读未提交:允许读取未提交的数据,此时会发生脏读的问题。
b)read committed读已提交:只允许读取已提交的数据,(给写加锁,解决了脏读的问题,但是又不可重复读的问题)。
c)repeatable read::(Mysql默认隔离级别),(给读加锁,解决了不可重复读的问题,但是会有幻读的问题。
d)serializable严格串行化:解决了幻读问题。
(3)使用事务
start transaction; 开启事务
SQL语句
roll back;//commit; 事务结束,开始执行

国产AI芯片实战:用寒武纪MLU370低成本部署DeepSeek-R1,实测推理效果与成本分析 本文详细介绍了寒武纪MLU370芯片在部署DeepSeek-R1大模型时的实战效果与成本优势。通过实测数据对比,MLU370在推理速度、能效比和本地化服务方面表现突出,尤其适合智能客服、内容生成等场景,可显著降低硬件投入和运维成本。 阅读详情

相关推荐

74hc595驱动模块的Verilog设计(线性状态机)

module hc595_driver( input clk, //50Mhz input rst_n, //复位信号 input [15:0] data, //数码管待显示数据,8位段选数据,8位位选数据 input en, //使能 o...

qq_41294540的博客 3740

【数据库】索引和事务

索引和事务的介绍,索引的数据结构及事务的特性及隔离级别介绍

m0_57248752的博客 797

白话详细解读(七)----- CBAM:Convolutional Block Attention Module

一、CBAM简介 论文链接:https://x.sci-hub.org.cn/scholar?hl=zh-TW&as_sdt=0%2C5&q=CBAM%3A+Convolutional+Block+Attention+Module&btnG=&oq=CB CBAM这篇论文是在2018年提出的,自提出之后,已经被引用上千次,可见其影响力。CBAM是一种专门为了卷积神经网络而设计的注意力模块,传统的卷积存在只关注局部信息,而往往忽略全局信息的弊端,以3*3卷积为例,滤波器有9个

奋斗の博客 1万+

数据库---索引和事务

索引是一种用于查找的数据结构 索引存在的目的:增加查找速率 缺点:降低增删改的速度,占用空间

m0_58342797的博客 2639

【Python实战解析】从数据爬取到房价预测:一个完整的数据科学项目流程拆解

本文详细拆解了一个完整的Python数据科学项目流程,从爬取长沙二手房数据到房价预测模型构建。通过实战案例,介绍了数据爬取、清洗、可视化及模型优化的关键技巧,帮助开发者掌握Python在数据分析中的应用,提升程序开发能力。

weixin_30379531的博客 411

Deepseek:物理神经网络PINN入门教程

物理信息网络(Physics-Informed Neural Networks, PINN)是一种将物理定律(如偏微分方程、守恒定律等)嵌入神经网络训练过程的深度学习方法。其核心思想是通过神经网络同时拟合观测数据并满足物理约束,从而解决传统数值方法难以处理的高维、噪声数据或复杂边界条件问题。

金石软件 9298

MySQL索引事务(二)

索引分类,事务特性,事务隔离级别

Krive~Irving 417

Open3D 曲率下采样

曲率下采样是一种基于几何特征的点云处理技术,通过计算每个点的曲率来判断其所在位置的局部表面特征,从而进行选择性保留。曲率的计算通常基于点的法向量和其邻域点的分布。

纵马踏花向自由 841

Spring事务的四大特性+事务的传播机制+隔离机制

脏读: 对于两个事务 T1, T2。T1 读取了已经被 T2 更新但还没有被提交的字段。之后, 若 T2 回滚, T1读取的内容就是临时且无效的,也就是脏数据。不可重复读:对于两个事务 T1, T2。T1 读取了一个字段, 然后 T2 更新了该字段。之后, T1再次读取同一个字段, 值就不同了。幻读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一些新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这些多出来的新纪录就是幻读。

来都来了 1804

Prism 入门02,区域介绍

什么是区域(Region)?区域,在Prism 框架中,区域是模块化的核心的功能之一,其主要作用是降低应用程序和模块之间的耦合度。使用方式:在应用程序的界面中,划分出某块区域,并为这个区域定义一个唯一的区域名称。那么通过这个区域名称,应用程序就可以找到指定的区域。并为这个区域动态放置一些容器或控件,从而呈现在界面中。

build2024 1125

Python 爬虫实战:淘宝直播间实时数据抓取(弹幕分析 + 流量监控)

随着电商直播的迅猛发展,淘宝直播已成为品牌推广和商品销售的重要阵地。通过爬取淘宝直播间的实时数据,包括弹幕互动和流量信息,可以帮助商家深入了解用户行为、优化直播策略,同时为市场分析和商业决策提供数据支持。本文将深入探讨如何利用 Python 爬虫技术实现对淘宝直播间实时数据的抓取,并进行弹幕分析和流量监控。

u014481728的博客 729

数据库索引、事务

在数据库设计和优化中,合理使用索引是提升查询效率的关键。不同类型的索引适用于不同的需求,如普通索引、唯一索引、组合索引和全文索引等。删除索引时,需谨慎操作,确保不会影响到数据库的正常运行和数据完整性。1.事务支持MyISAM:不支持事务,也不支持回滚和崩溃恢复。MyISAM适合一些不需要事务处理的应用场景,如只需要简单的读写操作的系统。InnoDB:支持事务,提供ACID(原子性、一致性、隔离性、持久性)属性,并支持回滚、崩溃恢复等机制。InnoDB更适合需要事务处理和数据一致性的场景。2.锁机制。

Jin_0612_的博客 926

chromium通信系统-ipcz系统(二)-ipcz系统代码实现-同Node通信

在chromium通信系统-mojo系统(一)-ipcz系统基本概念一文中我们介绍了ipcz的基本概念。 本章我们来通过代码分析它的实现。 handle系统 为了不对上层api暴露太多细节,实现解耦,也方便于传输,ipcz系统使用handle表示一个对象,handle类似于文件描述符,用IpczHandle类型表示ipcz系统内的一个对象。一个可以用IpczHandle 句柄表示的对象必须是APIObject子类。APIObject数据结构如下 class APIObject : public RefCou

woai110120130的专栏 1775

DB的事务和索引

事务原则: ACIDA:Atomic,原子性,将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行;C:Consistent,一致性,事务完成后,所有数据的状态都是一致的,即A账户只要减去了100,B账户则必定加上了100;I:Isolation,隔离性,如果有多个事务并发执行,每个事务作出的修改必须与其他事务隔离;D:Duration,持久性,即事务完成后,对数据库数据的修改被持久化存储。脏读: 读到没有提交的数据不可重复读:多次读取的数据不同。

futurn_hero的博客 262

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数据库的事务和索引

本文章主要介绍了数据库的事务和索引

2303_76782197的博客 1133

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【数据库必备知识】索引和事务

本文主要讲述了数据库当中的索引和事务, 并且花大量篇幅讲解了一下索引背后的数据结构 ---- B+树, 又讲了一下B树和B+树到底是什么, 以及有什么特点和优势.

一些普普通通的学习笔记 1762

深度学习工具包 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")

【数据库】索引与事务

每个结点中存放一定量的数据表中的每行数据(id,name,score,....),当结点中达到了规定的元素个数是,采取调整,B树就可以解决树过高的问题也就是IO访问次数过多的问题。索引的创建会占用一定的物理空间,索引值是存放在磁盘空间中的,但是为了减少IO访问次数,提高程序的效率,在访问数据的时候他会先从磁盘空间中预读一定长度的索引数据放在缓存中。在读的事务也加锁,但是这个锁是一把(共享锁),多个读锁可以共存,但是由于写锁是排他锁,所以读锁不能与写锁共存,也就是说,在加了读锁之后,不能进行写操作。

m0_73067372的博客 2079

数据库的索引和事务

索引和事务在数据库管理系统中各有其重要性。索引通过加速数据检索来提高查询效率,而事务则通过保证数据的一致性和完整性来维护数据库的健康运行。理解这两个概念及其使用场景,对于优化数据库性能和确保数据安全至关重要。

如无必要,勿增实体。 835

MySQL数据库——事务和索引

什么是事务: 事务是逻辑上的一种操作,要么都成功,要么都失败! —————————————————————————————————— 1、SQL执行 A:1000元 ——>转账200元 B:200元 2、SQL执行 A:800元 ——> B:400元 —————————————————————————————————— 将一组SQL放在一个批次中执行 事务四大特性: ACI...

龍弟-idea的博客 7034

MySQL 数据库--索引+事务

文章目录一、索引及分类1.索引的作用2.索引的副作用(利大于弊)3.创建索引的原则依据4.索引的分类①普通索引②创建唯一索引③创建主键索引5.索引查看方法二、事务1.事务的 ACID 特性2.原子性3.隔离性4.隔离性5.持久性6.事务之间的互相影响①脏读②不可重复③幻读④丢失更新7.MySQL及事务隔离级别①查询全局事务隔离级别②查询会话事务隔离级别③设置全局事务隔离级别④设置会话事务隔离级别8.事务的操作①使用事务命令控制事务②测试提交事务③测试回滚事务④测试多点回滚9.使用set设置控制事务 一、索引

weixin_53560205的博客 3301

数据库索引和事务理解

在我学习数据库时,有两个概念是非常重要的,在面试中很有可能被问到: 就是索引和事务的概念。 一、索引 通俗理解一下,我们每本书都有一个目录,通过这个目录我们很快的可以找到自己需要的某一章节,那么在数据库中就有一个索引,索引可以帮我们快速的找到数据的位置,提高数据海量数据的查询效率。 索引概念:索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 索引的作用: 数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内

LinYang_code的博客 792

Mysql数据库 索引,事务

从账户 A 扣款(操作 1)向账户 B 存款(操作 2)这两个操作必须作为一个整体执行,要么都成功,要么都失败。

2403_86763298的博客 1148

MySQL数据库索引和事务详解

索引创建成功后,不需要手动使用,在执行查询语句时会分析具体使用还是不使用索引。SQL是通过数据库执行引擎来执行的,它会自动评估这次查询使用还是不使用索引,并且会对SQL进行一些优化操作。选择成本低,速度快的方案。那么一次查询是否在走索引,以及怎么走,我们是不好分析的。可以通过explain关键字,具体查询索引的使用情况。

小小太空人的博客 1487

数据库——索引、事务、存储引擎

索引 索引是对某个字段进行排序的一种方式,对表中某个字段创建索引会创建另一种数据结构(二叉树),数据结构中保存着字段的值,而该值又指向与他相关的记录,这种数据结构是经过排序的,可以进行二分查找 创建索引 alter table 表名 add index(列名) 索引分类 主键索引(primary) 唯一性:一个表中只能有一个主键索引 效率高:因查询效率高,为一个表中只能有一个索引...

L_X_Y_HH的博客 1468

数据库事务与数据库索引

事务与索引的详细介绍

塞外的弼马温的博客 326

Mysql数据库之索引与事务

索引:是排序的快速查找的特殊数据结构,定义作为查找条件的字段上,又称为键key,索引通过存储引擎实现索引可以降低服务需要扫描的数据量,减少了IO次数索引可以帮助服务器避免排序和使用临时表索引可以帮助将随机I/O转为顺序I/O加快查询速度,提高数据库性能设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度,这是创建索引的最主要的原因。当表很大或查询涉及到多个表时,使用索引可以成千上万倍地提高查询速度。避免排序和使用临时表。

yinglongdiwan的博客 715
上一篇: Java-对称二叉树(递归实现)
下一篇: 关于Java
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值