Mysql ------ 索引+ 事务
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,文章目录一、索引:(1)数据库索引:(2)索引的作用:(3)索引分类:(4)创建索引的原则依据:(5)创建索引的办法:二、事务:(1)事务概念:(2)事务的四大特性:(3)事务的操作:三、两表相连查询
千家信息网最后更新 2025年01月22日Mysql ------ 索引+ 事务
文章目录
一、索引:
(1)数据库索引:
(2)索引的作用:
(3)索引分类:
(4)创建索引的原则依据:
(5)创建索引的办法:
二、事务:
(1)事务概念:
(2)事务的四大特性:
(3)事务的操作:
三、两表相连查询:
一、索引:
(1)数据库索引:
1、在数据库中,索引使数据程序无须对整个表进行扫描,就可以在其中找到所需数据;
2、数据库中的索引是某个表中一列或者若干列值的集合,以及物理标识这些值的数据页的逻辑指针清单。
(2)索引的作用:
1、数据库能够大大加快查询速率;
2、降低数据库的 IO 成本,并且索引还可以降低数据库的排序成本;
3、通过创建唯一性索引保证数据表数据的唯一性;
4、加快表与表之间的连接;
5、分组和排序的时候,可以大大减少分组和排序时间
(3)索引分类:
1、普通索引 :最基本的索引类型,而且没有唯一性之类的限制;
2、唯一性索引 :与普通索引基本相似,区别在于,索引列的所有值都只能出现一次,即必须唯一;
3、主键 :主键是一种唯一性索引,必须指定为 " primary key " ;
4、全文索引 :mysql 从3.23.23版本开始支持全文索引和全文检索,在mysql 中,全文索引的索引类型为 fulltext ,全文索引可以在 varchar 或者 text 类型的列上创建;
5、单列索引与多列索引:索引可以是单列上创建的索引,也可以是在多列上创建的索引。
(4)创建索引的原则依据:
表的主键、外键必须有索引;
数据量超过 300 行的表应该有索引;
经常与其他表进行连接的表,在连接字段上应该建立索引;
唯一性太差的字段不适合建立索引;
更新太频繁的字段不适合创建索引;
经常出现在 where 子句中的字段,特别是大表的字段,应该建立索引;
索引应该建立在选择性高的字段上;
索引应该建立在小字段上,对于大的文本字段甚至超长字段,不要建立索引。
(5)创建索引的办法:
1、创建普通索引:
##创建普通索引create index 要定义索引名称 on 表名 (列名1,列名2....);##查看索引show index from info;##删除索引drop index index_age on info;
例如,我们针对下面这张表,给年龄这列创建一个索引:
2、创建唯一性索引:
create unique index <索引的名字> on tablename(列的列表);##另种方式:更改表建构方式创建:alter table 表名 add index 索引名称 (列名);##第三种方式:可以在创建表的时候直接定义
3、创建主键索引:
##在创建新表的时候creata table tablename ([..],primary key (列的列表));##在已有的表上设置一个alter table tablename add primary key (列的列表);
4、创建全文索引:
create fulltext index 索引名称 on 表名(列的列表);
5、创建组合索引:
create index 索引名称 on 表名 (列的列表1,列的列表2.....);
6、查看索引:
show index from tablename; show keys from tablename;
二、事务:
(1)事务概念:
简单的说就是把所有的命令作为一个整体一起提交或者撤销,要么一起都执行,要么一起都不执行。
(2)事务的四大特性:
1、原子性:所有元素都必须作为一个整体提交或回滚,任何元素失败,则整个事务都失败;
例如,我们平时下载软件等,如果中途遇到故障等导致安装失败,就会退回到安装软件前的状态。
2、一致性:事务开始之前,数据处于统一、一致的状态;事务完成之后,再次回到一致转态。
3、隔离性:所有并发事务彼此独立,互不相干、影响。
4、持久性:一旦事务被提交,就会被永久地保留在数据库中。
(3)事务的操作:
默认情况下,mysql 的事务都是自动提交的,当 sql 语句提交时事务便自动提交;
手动对事务进行控制的办法(事务处理命令控制或者使用 set命令控制):
1、事务处理命令控制事务:
begin :开始一个事务;
commit :提交一个事务;
rollback :回滚一个事务;
接下来,我们开始做回滚操作,想回到哪个节点,就回到那个存档点即可:
要想回滚到最初状态,直接使用 rollback 命令:
2、使用 set 命令进行控制:
set autocommit=0 :禁止自动提交;set autocommit=1 :开启自动提交;
三、两表相连查询:
例如,下面有两张表,第一张名为 suer;第二种名为 hob,因为这两张表中有部分信息时相关联的,如何操作:
输入以下命令,将两张表相关联:
1、直接关联:
select * from user inner join hob on user.hobby=hob.id;
2、还可以按条件关联:
select user.name,hob.name from user inner join hob on user.hobby=hob.id;
索引
事务
数据
字段
数据库
命令
唯一性
全文
控制
普通
名称
关联
一致
办法
方式
时候
状态
类型
排序
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
php html数据库查询
梦幻西游手游江山如画服务器
网络技术专业开设那些课程
梦幻西游剑会天下服务器
如何建立公司的数据库
北京北天信通网络技术
马云手机网络安全
远程血压计软件开发
复旦网络安全实验室
魔域宝宝的数据库是什么
沈阳赛捷软件开发
网络安全薪水一般多少西宁
服务器基础知识测试题
网络安全的语句
石景山区网络安全资质申请哪家好
rsc是否是常见文摘数据库
linux服务器在虚拟机
计算机网络安全的探索
厦门软件开发公司设计
思科网络安全咨询
深圳市鸿扬互联网科技有限公司
杭州空格键网络技术
南京大学网络安全绘画
cass输出数据库文件
英国金融交易数据库
万茜 点赞 网络安全
华为员工软件开发员工工资
服务器加速区和安全区
网络安全 谁来买单
专科生计算机网络技术就业前景