
数据库SQL
文章平均质量分 77
wangxiaoming
博客是很好的总结和记录工具,如果有问题,来不及回复,关注程序员奇点,获取我的联系方式,向我提问,也可以给我发送邮件,联系 [email protected]
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
查找某个分组后的第一条,不同 mysql 版本问题
查找某个分组后的第一条,不同 mysql 版本问题create table `shop` ( `id` int (10) PRIMARY KEY, `shop_name` varchar (100), `item_name` varchar (100), `price` int (10)); insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('1','小卖部','酱油','12');原创 2022-04-12 15:25:57 · 185 阅读 · 0 评论 -
数据库中有哪些索引?
主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。唯一性索引列允许空值,而主键列不允许为空值。主键列在创建时,已经默认为空值 + 唯一索引了。主键可以被其他表引用为外键,而唯一索引不能。一个表最多只能创建一个主键,但可以创建多个唯一索引。主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。...原创 2021-05-18 10:09:38 · 2924 阅读 · 0 评论 -
MySQL 面试题
Q:MYSQL (innodb)的索引有哪些,区别是什么,什么时候回表查询,什么情况下会sql查询会索引失效。A:物理结构上分:聚簇索引和非聚簇索引聚集索引:表数据按照索引的顺序来存储的,也就是说索引项的顺序与表中记录的物理顺序一致。对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页。 在一张表上最多只能创建一个聚集索引,因为真实数据的物理顺序只能有一种。非聚集索引:表数据存储顺序与索引顺序无关。对于非聚集索引,叶结点包含索引字段值及指向数据页数据行的逻辑指针,其行数量原创 2021-02-26 17:18:24 · 264 阅读 · 0 评论 -
Mysql数据库有几种索引
索引分类从物理上分聚簇索引非聚簇索引从逻辑角度普通索引唯一索引主键索引文本索引复合索引空间索引 :空间索引是对空间数据类型的字段上建立索引。空间数据类型有4种,分别是 GEPMETRY 、POINT、 LINESTRING 、POLYGONCREATE TABLE table name[coL name data type][unique l fulltext I spatial] [index key][index_ name ](col_name[length])[asc原创 2020-11-26 16:12:35 · 435 阅读 · 0 评论 -
什么是事务隔离
什么是事务隔离事务简单的来说是保证一组数据库操作,要么全部成功,要么全部失败。MySQL 中事务支持是在引擎实现的, MySQL 原生的 MyISAM 引擎不支持事务,这也是 MyISAM 被 InnoDB 引擎取代的重要原因。隔离性与隔离级别提到事务, 数据库为了保证事务,必须具备四个特性:ACID,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)事务的四个特性原子性 (Atomicity)事务操作,要么全部做完原创 2020-07-19 12:27:54 · 2249 阅读 · 0 评论 -
数据库原理: Change Buffer 是干什么的?
数据库原理: Change Buffer 是干什么的?redo log 主要节省的是随机写磁盘的 IO 消耗(转成顺序写),而 change buffer 主要节省的是随机读磁盘的IO消耗。实例:插入过程插入语句insert into t(id,k) values(id1,k1),(id2,k2);假设当前 k 索引树的状态,查找到位置后,K1 所在的数据页在内存(InnoDB buffer pool)中,K2 所在的数据页不在内存中。包含 几个部分:内存、redo log(ib_log原创 2020-07-12 11:44:14 · 1094 阅读 · 1 评论 -
MySQL 普通索引和唯一索引该如何选择?
MySQL 普通索引和唯一索引该如何选择?普通索引和唯一索引在查询能力上没啥差别,主要考虑对更新性能的影响,要尽量选择普通索引。接下来分析两种索引在查询语句和更新语句对性能的影响。查询过程MySQL InnoDB 是采用 B+ 树实现其索引结构。B+ 树的查找过程如上图所示:现在需要查找 29 这个值。将磁盘块1从磁盘加载到内存,发生一次IO ,在内存中使用二分查找方式找到 29在17和35 之间,锁定磁盘块1的P2 指针。通过磁盘块1 的 P2 指针地址把磁盘块3 加载到内存,发生第二原创 2020-07-09 21:58:46 · 613 阅读 · 0 评论 -
SQL 中的聚集函数?
SQL 中的聚集函数?SQL 函数包含了算术函数,字符串函数,日期函数,转换函数。还有一函数,叫做聚集函数。SQL 聚集函数是对一组数据进行汇总的函数,输入是一组数据的集合,输出是单个值。有哪些聚集函数SQL 中的聚集函数,有最大值,最小值,平均值。Count 使用例子:查询heros 中hp_max 大于6000 的英雄。SELECT COUNT(*) FROM heros WHERE hp_max > 6000运⾏结果为41。想要查询最⼤⽣命值⼤于6000,且有次要定位的英雄数量原创 2020-07-06 21:08:09 · 614 阅读 · 0 评论 -
数据库分类
数据库分类DB DBS DBMS区别是什么?DBMS 的英文全称是 DataBase Management System 数据库管理系统。DBMS = 多个数据库(DB) + 管理程序DB(DataBase)数据库,数据库是存储数据的集合。DBS 的英文是 DataBase System 数据库系统,包含了数据库,数据库管理系统+数据库管理人员(DBA)常见的 DBMS数据库分类关系型数据库(RDBMS)关系型数据库建立在关系模型的基础上,SQL就是关系型数据库的查询语言。非关系型数据原创 2020-07-04 13:47:55 · 318 阅读 · 0 评论 -
数据库锁分类
数据库锁分类锁和索引是数据库两大核心概念,了解索引,可以从 B+ 树,Hash 索引,页结构,缓存池,索引原则等方面理解。理解锁,要从哪些方面入手?为什么要加锁加锁的目的,其实是为了保证数据的一致性。 当多个线程并发访问某个数据时,加锁,可以保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。锁的分类锁可以按照锁粒度划分,可以按照数据库管理角度划分。按照锁粒度划分按照锁粒度划分,可以将锁划分成 行锁,页锁和表锁。快速回忆一遍 InnoDB 存储引擎的逻辑结构:所有数据都被原创 2020-07-02 23:13:51 · 333 阅读 · 0 评论 -
【深入理解数据库原理】InnoDB 是如何解决幻读、不可重复读?
InnoDB 是如何解决幻读、不可重复读?如何解决不可重复读上一篇文章,已经说明 InnoDB 是如何解决不可重复读的。一个事务只在第一次 SELECT 的时候会获取一次 Read view,而后面所有的 SELECT都会复用这个 Read view,这样每次读到的就是一样的,就可重复读。InnoDB 是如何解决幻读的?在读已提交的情况下,及时采用了 MVCC 方式也会出现幻读,如果我们同时开启事务A 和 事务B, 现在事务A 中进行某个条件的查询,读取的时候采用排他锁,在事务B 中增加一条复核原创 2020-06-11 15:26:51 · 1171 阅读 · 0 评论