SQL案例分析-字符集不一致导致索引失效
MySQL字符集不一致导致的索引失效案例分析。
SQLite 3.39.0 发布,支持右外连接和全外连接
SQLite 开发团队于 2022 年 06 月 25 日发布了 SQLite 3.39.0 版本。该版本最大的更新就是支持 RIGHT OUTER JOIN 和 FULL OUTER JOIN,本文给大家逐一进行分析。
SQL面试题:字符类型字段怎么创建索引?
前缀索引只针对字符串的前面一部分字符创建索引,可以节约存储空间,同时不会对查询性能产生明显的影响。不过,前缀索引无法利用覆盖索引优化技术,无法实现唯一性。
SQL面试题:什么是死锁?
当两个事务互相之间需要等待对方释放资源时,如果系统不进行干预则会一直等待下去,也就是进入了死锁(deadlock)状态。死锁的4个必要条件包括:互斥条件,请求与保持条件,不剥夺条件,环路等待条件。
SQL面试题:什么情况下索引会失效?
可能导致SQL查询无法使用索引的原因包括:对索引字段进行了运算或者使用了函数;查询中的数据类型和字段类型不一致;违反了索引的最左匹配原则;全表扫描更快等。
SQL面试题:为什么不要用SELECT查询数据?
SELECT *在实际应用中可能产生一下问题:数据库读取更多数据;网络传输负载加重;失去覆盖索引优化的可能;表结构变动带来不确定性。
《MySQL 入门教程》第 32 篇 存储过程(二)
本篇详细介绍了 MySQL 存储过程和函数中的编程功能,包括变量、条件控制语句、循环控制语句、错误处理、游标的使用以及访问权限控制。
PostgreSQL 15 JSON 函数增强
PostgreSQL 15 增加了大量符合 SQL/JSON 标准的函数,使得 JSON 数据的处理更加简单。
SQL面试题:什么是索引的最左前缀原则?
索引的最左匹配原则可以帮助我们决定如何创建索引,如何优化SQL查询。
2013-2022数据库排行榜
根据DB-Engines数据库流行度制作的2013-2022排行榜变化情况。
SQL案例分析:SQL子句的逻辑执行顺序
SQL子句的逻辑执行顺序和编写顺序不同,这会涉及到查询语句的语法、语义以及优化。
《MySQL 入门教程》第 31 篇 存储过程(一)
MySQL 存储过程(Stored procedure)和存储函数(Stored function)是一种存储在数据库中的程序,可以包含多个 SQL 语句,提供许多过程语言的功能,例如变量定义、条件语句、循环语句、游标以及异常处理等。
SQL案例分析:覆盖索引不是索引
在某些情况下,查询语句仅仅通过索引访问就可以返回所需的结果,不需要访问表中的数据,此时我们把这个索引称为覆盖索引(Covering Index)。某些数据库中称之为 Index Only Scan。覆盖索引是优化器选择的一种执行计划;或者也可以说,任何索引在某种情况下都可能成为覆盖索引。
《MySQL 入门教程》第 30 篇 数据库索引
数据库索引(Index)就像书籍后面的关键字索引,按照关键字进行排序,并且提供了指向具体内容的页码。索引可以用于提高数据库的查询性能;但是索引需要占用额外的磁盘空间,修改数据时也需要进行索引的维护。
SQL案例分析:执行计划怎么解读?(下)
继续解读MySQL执行计划中,包括Extra字段,访问谓词和过滤谓词的区别,以及如何获取SQL语句实际运行的执行计划。
《MySQL 入门教程》第 29 篇 视图
MySQL 视图就是一个存储在数据库中的查询语句。视图本身不包含数据,因此也被称为虚拟表(Virtual Table)。本文介绍了如何创建视图、查看视图、修改视图以及删除视图。同时还讨论了可更新视图。
SQL案例分析:执行计划怎么解读?(上)
执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行 SQL 语句的具体步骤。如果想要解决慢查询的性能问题,首先应该查看它的执行计划。
SQL案例分析:主键使用自增ID还是UUID?
主键和索引的结构关系重大,分库分表又带来了全局唯一性的问题,所以主键应该使用自增ID还是UUID?
《MySQL 入门教程》第 28 篇 字符集与排序规则
本篇介绍 MySQL 中的字符集(Character Set)和排序规则(Collation)。字符集决定了能够存储哪些字符,排序规则定义了字符集中字符的排序和比较顺序,包括是否区分大小写,是否区分重音等。
SQL案例分析:一条查询语句的执行过程
从客户端建立连接开始,到解析器进行语法、语义分析和权限检查,然后优化器生成执行计划,执行器调用存储引擎获取物理文件中的数据,最后返回客户端。同时数据库为了提高性能,还提供了查询计划缓存和热点数据缓存。