数据库

本文深入探讨MySQL的两种引擎InnoDB与MyISAM的特点,包括事务支持、锁机制及运行速度对比。此外,还介绍了数据库授权、表结构设计、SQL语句、视图、触发器、函数、存储过程等高级特性,以及索引的种类和作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MySQL数据库

有两种引擎:

使用引擎代码

1.innorDB,支持事务,可以使用锁(行锁和表锁),但是运行速度较慢。

begin;
select * from userinfo for update;     #表锁,整张表都不能访问
select * from userinfo where id=1 for update;     #行锁,只有id=1这行数据上锁,其他行可以被访问
commit;  #解锁
在终端里的锁
cursor.execute("select * from userinfo for update")
在pymysql里的锁
#django中不能上锁,但可以使用事务
with trancation.automic():
    models.User.objects.all().for_update()
在Django中的事务

 

2.mysaim,不支持事务,只可以使用表锁,运行速度较快。

 

二、数据库授权

三、表结构设计

四、SQL语句(增删改查、常用)

五、需要了解的东西 http://www.cnblogs.com/wupeiqi/articles/5713323.html

1、视图:将一条sql语句起一个别名,调用这个别名即可查询这条语句。

  视图存在数据库中。

#创建
create view v1 as select * from userinfo where id > 3;

#删除
drop view v1;

#查询
select * from v1;
视图删改查

2、触发器:在对某张表增删改的前后自定义操作

 

3、函数:对取到的数据再加工。

4、存储过程:

 

六、索引

作用:加速查找、约束

种类:

  主键:加速查找、唯一、不为空

  普通索引:加速查找

  唯一索引:加速查找、唯一、可为空(只能有一个为空)

  联合索引:加速查找

  联合唯一索引:加速查找、唯一(两列或多列数据不重复)

  PS:联合索引遵循最左前缀原则

名词:

  覆盖索引:去索引文件中查找数据

  索引合并:使用多个单列索引查找数据

转载于:https://www.cnblogs.com/yinwenjie/p/10792404.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值