zoukankan      html  css  js  c++  java
  • MySQL索引与事务

    MySQL索引与事务

    链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ
    提取码: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

  • 相关阅读:
    怎样将文件夹打包为jar包或war包
    tomcat6.0安装
    jdk安装
    spring cloud深入学习(十一)-----服务网关zuul
    spring cloud深入学习(十)-----配置中心和消息总线(配置中心终结版)
    spring cloud深入学习(九)-----配置中心服务化和高可用
    spring cloud深入学习(八)-----配置中心svn示例和refresh
    spring cloud深入学习(七)-----配置中心git示例
    spring cloud深入学习(六)-----熔断监控Hystrix Dashboard和Turbine
    dubbo入门学习(一)-----分布式基础理论、架构发展以及rpc、dubbo核心概念
  • 原文地址:https://www.cnblogs.com/ywb123/p/11199225.html
Copyright © 2011-2022 走看看