随笔分类 - Mysql
摘要:唯一索引: 唯一性:唯一索引保证索引列的值是唯一的,不会有重复。比如,一个班级的学号,每个学生都有一个唯一的学号,不能有重复。可以有多个:一个数据库表中可以有多个唯一索引,就像一个班级可以有多个科目,每个科目都可以有一个唯一的成绩单。允许空值:唯一索引列中可以有一些空值(没有填写的数据)。就像在一个
阅读全文
摘要:一. 简介 where 对查询数据进行过滤 having 用于对已分组的数据进行过滤【having和group by 必须配合使用(有having必须出现group by)】 二. 用法 where select * from table where sum(字段)>100 having selec
阅读全文
摘要:第一章 MySQL 的灵活性体现在很多方面,但其中最与众不同的特性是它的存储引擎架构:将查询处理以及其他系统任务和数据的存储/提取相分离。这种设计使得可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式。 MySQL 架构整体上分为三层:第一层处理连接、权限等;第二层包含所有核心的功能,例如
阅读全文
摘要:按照物理实现方式,索引可以分为两大类: 1)聚集索引:在聚集索引里,表中数据行按索引的排序方式进行存储,对查找行很有效。只有当表包含聚集索引时,表内的数据行才会按找索引列的值在磁盘上进行物理排序和存储。每张表只能有一个聚集索引,原因很简单,因为数据行本身只能按一个顺序存储。 特点: 1.索引内容本身
阅读全文
摘要:在设计数据库表的时候,经常需要设计一个id字段,它的类型一般都是整型int,经常会遇到int(1)、int(20)等。 int的范围:有符号的整型范围是-2147483648~2147483647无符号的整型范围是0~4294967295 参看 MySQL 手册,int(M): M indicate
阅读全文
摘要:一、整型数据类型存储方式整型数据类型是Mysql中最常用的数据类型之一,其存储方式如下:(默认是有符号,即取值范围是正负范围;无符号,即取值范围就是正值范围)1. TINYINT:占用1个字节,范围为-128~127。2. SMALLINT:占用2个字节,范围为-32768~32767。3. MED
阅读全文
摘要:一、问题 当使用limit实现分页查询时,当limit的偏移量越大时,sql语句的耗时也越大。 select * from table_name limit 10000,10 select * from table_name limit 0,10 这两条查询语句都是取10条数据,但性能就相差甚远。
阅读全文
摘要:使用SQL语句来访问存储在数据库表中的记录集合。SQL查询是由像From、Where等各种子查询来构成的。必须执行这些子查询才能获得正确的结果,看下SQL语句中各个子查询执行的先后顺序。 select column1,column2 from table1 as t1 left join table
阅读全文
摘要:MySQL支持两种方式的排序filesort和index,Using index是指MySQL扫描索引本身完成排序,如果order by的条件不在索引列上,就会产生Using filesort。 Using filesort表示在索引之外,需要额外进行外部的排序动作。当MySQL无法使用索引完成排序
阅读全文
摘要:存储方式MySQL: 是一个服务器端的数据库系统,通常运行在一个独立的服务器上。数据存储在服务器的硬盘上。SQLite: 是一个嵌入式数据库,通常用于移动应用和桌面应用。数据存储在一个单一的文件中。并发支持MySQL: 支持高并发,适用于大型、多用户的应用。SQLite: 并发支持较弱,更适用于单用
阅读全文
摘要:执行SQL时出现错误 ERROR 1055,SELECT列表不在GROUP BY语句内且存在不函数依赖GROUP BY语句的非聚合字段'edusassvc.u.nickname' 这是和sql_mode=only_full_group_by不兼容的(即不支持)。 分析问题 1)原理层面 错误会发生在
阅读全文
摘要:1)、使用正确的连接类型:根据查询需求,选择合适的连接类型,如 INNER JOIN、LEFT JOIN 或 RIGHT JOIN。INNER JOIN 通常性能较好,因为只返回匹配的记录。 INNER JOIN:仅返回两个表中匹配的行。LEFT JOIN:返回左表中所有行,以及右表中匹配的行。RI
阅读全文
摘要:一、行锁和表级锁的区别: 行锁:开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高。仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作表锁:开销小,加锁快,无死锁,锁定粒度大,发生锁冲突的概率最高,并发度低。直接锁定整张表,在锁定期间,其它进程无法对该表进
阅读全文
摘要:主要原因有三点: 1)查询时,由于innodb支持事务,所以会有mvvc(多版本并发控制)的一个比较,这个过程会损耗性能。2)查询时,如果走了索引,而索引又不是主键索引,此时由于innodb是聚簇索引,会有一个回表的过程,即:先去非聚簇索引树(非主键索引树)中查询数据,找到数据对应的key之后,再通
阅读全文
摘要:InnoDB存储引擎是以页为单位来管理空间的,一般进行的增删改查操作其实本质都是在访问页面(读页面,写页面,创建新页面)等,磁盘IO需要消耗的时间很多,而在内存中进行操作,效率会高,为了能让数据表或者索引中的数据随时被使用,DBMS会申请占用内存来作为数据缓冲池,在真正访问页面之前,需要把磁盘上的页
阅读全文