博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL索引与事务
阅读量:5034 次
发布时间:2019-06-12

本文共 1475 字,大约阅读时间需要 4 分钟。

MySQL索引与事务

链接:

提取码:ekpy
复制这段内容后打开百度网盘手机App,操作更方便哦

1.索引的分类

  • 普通索引:这是最基本的索引类型,而且没有唯一性之类的限制
  • 唯一性索引:与普通索引基本相同,区别在于:索引列的所有值都只能出现一次,即必须唯一,但可为空。
  • 主键:是一种特殊的唯一索引,必须指定为PRIMARY KEY,具有唯一性的同时不能为空
  • 全文索引:MySQL3.23.23版开始支持全文索引和全文检索。在MySQL中,全文索引的类型为FULLTEXT,全文索引可以在`VARCHAR或者TEXT类型的列上创建。贴吧的文本内容,和一些小型的网站网页内容,存放在数据库中即为全文索引模式。
  • 单列索引与多列索引:索引可以是单列上创建的索引,也可以是 列上创建的索引。

2.索引的作用

  • 设置了合适的索引之后,数据库利用各种快速的定位技术,能够大大加快查询速率,特别是当表很大时,或者查询涉及到多个表时,使用索引可使查询加快成千倍。
  • 可以降低数据库的lo成本, 并且索引还可以降低数据库的排序成本。
  • 通过创建唯一-性索引保证数据表数据的唯一性,可以加快表与表之间的连接。
  • 在使用分组和排序时,可大大减少分组和排序时间。

3.创建,查看,删除索引的方法

3.1索引的创建

已知一个表内信息数据如下

image_1ckmkmcmjb5b1tap1jk71qs01c1v75.png-8.3kB

3.1.1创建普通索引(没有唯一性限制)

image_1ckmibu8u6h8e6l1c5njlh1b8p16.png-23.1kB

(1)示例如下:
image_1ckmiegld1343smmks1pkv1mbm1j.png-5kB

查看结果:

image_1ckmifugj2blg0b12aj2tm1sfr20.png-11.4kB

(2)示例如下:

image_1ckmj91vh174f1qfe2e42kk1i84h.png-4.8kB

查看结果:

image_1ckmja7jbd0vfor13fh1t79nsn4u.png-13.7kB

3.1.2创建唯一性索引(必须唯一,但可为空)

image_1ckml40c4oqt11931oiv1aevv477i.png-32kB

示例如下:
image_1ckmjpeq014o51jr144eagi12a6b.png-5kB

查看结果:

image_1ckmjqjg61uqrc3pbp5r9rp606o.png-11.3kB

3.1.3创建主键索引

image_1ckml74901ek51pom1i9hnoeaec8v.png-43.9kB

若新创表时忘记创建主键,示例如下:
image_1ckmmmn9e1mnf1ije14fc1ec61ih6aj.png-5.1kB

查看结果:

image_1ckmmoh3moda145nkrv26g1g2obd.png-16.3kB

3.2索引的查看

3.2.1索引的查看index的使用

(1)示例如下:

image_1ckmj0mjbq1n2labdo1tvulh52d.png-11.3kB

(2)示例如下:

image_1ckmj1qed1rvsjci10m2k5i1gn22q.png-14.8kB

3.2.2索引的查看keys的使用

(1)示例如下:

image_1ckmj3o274fe1oag1utr1k6314bp44.png-11.7kB

(2)示例如下:

image_1ckmj3bjag2h8ph1n9d19rimuk3n.png-14.8kB

3.3索引的删除

image_1ckmln7001o4q183toc04968sla6.png-65.9kB

已知有以下索引:

image_1ckmn10mh192o5kl17pt83c18hmck.png-16.5kB

(1)示例如下:

image_1ckmn1nf2u9p1qq618ur12mk1j1bd1.png-4.3kB

查看结果:

image_1ckmn3ja1iidk9kc69ll1d9hde.png-16.6kB

(2)示例如下:

image_1ckmn63hmgfj1v9e1dil8krsm3dr.png-4.5kB

查看结果:

image_1ckmn88uu1s21mtr1l6n1ga215qng8.png-13.6kB

(3)示例如下:

image_1ckmnb217kik1egb2b0ujf1u25gl.png-4.8kB

查看结果:

image_1ckmnbt5k1mjd5iv1kna18li57gh2.png-3.4kB

4.事务ACID的特点

image_1ckmni95p1vgv6l11f8o1lt2rgfhf.png-50.3kB

  • 原子性:事务是一个完整的操作,事务的各元素是不可分的(原子的),事务的所有元素必须作为一个整体提交或回滚。如果事务中的任何元素失败,则整个事务将失败。
  • 一致性:当事务完成时,数据必须处于一致状态:在事务开始之前,数据库汇总存储的数据处于一致状态;在正在进行的事务中,数据可能处于不一致的状态;当事务完成时,数据必须再次回到已知的一致状态。
  • 隔离性:对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应该以任何方式依赖于或影响其他事务。修改数据的事务可以在另一个使用相同数据的事务开始之前访问这些数据,或者在另一个使用相同数据的事务结束之后访问这些数据。
  • 持久性:事务的持久性指不管系统是否发生了故障,事务处理的结果都是永久的。一旦事务被提交,事务的效果会被永久地保留在数据库中。

5.事务的操作

5.1命令简介

image_1ckmp9g4a12ur8h3os41p0r1hr7i9.png-8.5kB

image_1ckmpartc4i6eljtiu1pnnbp0im.png-12kB

image_1ckmpdgu3h0n1g941q1i1r8boo9j3.png-25kB

5.2实际演练(为实验效果,开启两个窗口,实为一台虚拟机)

已知表内信息数据如下

image_1ckmpr5alk7h1kdt6r6f7qr7jg.png-8.2kB

(1)窗口①示例如下:

image_1ckmq1ptu1k3o1nm41jvv17a91h4mjt.png-3.4kB

image_1ckmq4dv75tjkpe17lmks39j2ka.png-5.8kB

image_1ckmq65ik9e4hcj8cekh8hjbkn.png-9.2kB

窗口②查看结果:

image_1ckmqatck1ub2m3scf41o2fk0ol4.png-13kB

窗口①示例如下:

image_1ckmqge06o3o1gdft1916qk73rlh.png-3.7kB

窗口②查看结果:

image_1ckmqjm5t176n19r3s0t13nhs35lu.png-11.6kB

(2)窗口①示例如下:

image_1ckmqs1vf1b8d1tdg9t9111m17gtmb.png-3.5kB

image_1ckmqsucr1ga87fifp9oer1vrpmo.png-5.9kB

image_1ckmqtc7fuu8p71hpaaud1st9n5.png-9.4kB

窗口②查看结果:

image_1ckmqu4iv2fpvsv16bt12pvvtpo2.png-13.5kB

窗口①示例如下:

image_1ckmqvakc1vfsne8gegg9dobhof.png-3.6kB

窗口②查看结果:

image_1ckmqvnn0pm1qq2fl135g196ros.png-12kB

5.3禁止自动提交

默认情况下MySQL的事务是自动提交的,当sql语句提交时事务便自动提交。

(1)窗口①示例如下(关闭自动提交):

image_1ckmroeg01v901vnk1k791g221oekp9.png-13.3kB

image_1ckmrqest8oh1kem1vg6ils1ilbpm.png-5.9kB

image_1ckmrrom0dun1v6j1ajjer6165pq3.png-9.4kB

窗口②查看结果:

image_1ckmrsh5at4v1gj61kimo6shmkqg.png-13.5kB

(2)窗口①示例如下(开启自动提交):

image_1ckms0v131qjv1ra31itq1rcv4mcqt.png-10.3kB

image_1ckms2m0j1pupp231r80e0393urq.png-9.4kB

窗口②查看结果:

image_1ckms2t25ftia3vcgn8bk9d0sn.png-9.4kB

转载于:https://www.cnblogs.com/ywb123/p/11199225.html

你可能感兴趣的文章
程序员高效开发的几个技巧
查看>>
hexo 搭建博客
查看>>
建造者模式(屌丝专用)
查看>>
Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
查看>>
酷狗的皮肤文件存放在哪
查看>>
C++的引用
查看>>
T-SQL查询进阶--深入浅出视图
查看>>
Android读取url图片保存及文件读取
查看>>
完整ASP.Net Excel导入
查看>>
循环队列的运用---求K阶斐波那契序列
查看>>
css3 标签 background-size
查看>>
python itertools
查看>>
Linux内核调试技术——jprobe使用与实现
查看>>
http://lorempixel.com/ 可以快速产生假图
查看>>
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
Android Studio默认快捷键
查看>>
函数式编程与参数
查看>>
HDU 2191 【多重背包】
查看>>
51nod 1433 0和5【数论/九余定理】
查看>>
[Qt] this application failed to start because it could not find or load the Qt platform plugin
查看>>