
Mysql
文章平均质量分 92
@烟雨倾城ゝ
这个作者很懒,什么都没留下…
展开
-
MySQL深入学习---(5) 对于唯一索引和普通索引,该如何选择?
开篇点题:在不同的业务场景下,应该选择普通索引,还是唯一索引? 假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的 SQL 语句: select name from CUser where id_card = 'xxxxxxxyyyyyyzzzzz'; 由于身份证号字段比较大,我不建议你把身份证号当做主键,那么现在你有两个选择,要么给 id_card 字段创建唯一索引,要么创建一个普通索引。原创 2021-06-09 20:10:50 · 168 阅读 · 0 评论 -
MySQL深入学习---(4) 带你遨游 “锁” 家族
锁家族有哪些成员呢? 为了处理并发问题,数据库需要合理的控制资源的访问规则,这时候锁就是用来实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL里面的锁大致分为“全局锁”,“表级锁”,“行锁”。 1、全局锁 MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。其会整个库处于只读状态,而之后其它线程的增删改语句和事务的提交,表结构的修改与创建就会被阻塞。unlock tables可以解除全局锁。 全局锁的典型使用场景是:做全库逻原创 2021-05-26 23:47:31 · 135 阅读 · 0 评论 -
MySQL深入学习---(3) 10分钟带你 | 深入浅出索引
一、深入浅出索引1、引出索引:2、索引的常见模型:哈希表、有序数组和搜索树(1)哈希表(2)有序数组(3)二叉搜索树3、InnoDB 的索引模型问: 那么基于主键索引和普通索引的查询有什么区别呢?4、索引覆盖5、最左前缀原则问:在建立联合索引的时候,如何安排索引内的字段顺序?6、索引下推7、索引维护问:但是,哪些场景下应该使用自增主键,而哪些场景下不应该使用呢?8、总结9、面试题问:为什么MySQL的索引要使用B+树而不是其它树形结构?比如B树? 一、深入浅出索引 1、引出索引: 比如某一个 SQL .原创 2021-05-16 22:17:53 · 209 阅读 · 1 评论 -
MySQL深入学习---(2) 事务隔离:为什么你改了我还看不见?
一、什么叫事务隔离 简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的。对于InnoDB存储引擎而言,其默认的事务隔离级别完全遵循和满足事务的ACID(原子性、一致性、隔离性、持久性)特性。 1、隔离性与隔离级别 当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。 脏读:当数据库中原创 2021-05-14 12:40:38 · 584 阅读 · 3 评论 -
MySQL深入学习---(1)一条SQL查询和更新语句是如何执行的?你们真的了解吗?
一条SQL查询语句到底是如何执行的 下面从一条最简单的查询语句开始: select * from T where ID=10; MySQL的sql语句执行流程图: 1、连接器: 连接器负责跟客户端建立连接、获取权限、维持和管理连接。连接命令一般是这么写的: mysql -h$ip -P$port -u$user -p 指定IP地址,port端口号,用户名,密码 连接完成后,如果你没有后续的动作,这个连接就处于空闲状态,你可以在 show processlist 命令中看到它 客户端如原创 2021-05-10 20:41:52 · 351 阅读 · 3 评论