![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
database
文章平均质量分 82
Martin89
这个作者很懒,什么都没留下…
展开
-
SQLite语法 ON CONFLICT
FAIL 当发生适用的约束冲突时,FAIL 解析算法会中止当前的 SQL 语句并返回 SQLITE_CONSTRAINT 错误。例如,如果 UPDATE 语句在尝试更新的第 100 行遇到约束冲突,则前 99 行更改将被保留,但对第 100 行及以后的行的更改永远不会发生。当发生UNIQUE约束冲突,先存在的,导致冲突的行在更改或插入发生冲突的行之前被删除。这样,更改和插入总是被执行。例如,若一条UPDATE语句在100行遇到冲突100th,前99行的改变将被保留,而对100行或以后的改变将不会发生。...转载 2022-08-30 09:52:15 · 1636 阅读 · 0 评论 -
Sqlite3中replace语句用法详解
由于自己的孤陋寡闻, 也由于之前的项目中, 很少参与过数据库模块的开发, 以至于前几天才知道Sqlite数据库也支持replace语句。 本文主要讲解在Sqlite中replace语句的行为,也算是学习笔记。此外, replace语句和update语句有相似的地方, 但是也有很多不同之处。 本文还要对比一下Sqlite中的 replace语句和update语句 。 在本例中使用如下数据库表:(图 1)该表的表名为student, 存储学生信息。 所有字段的数据类型都是TEXT 。 其中id和name作为复合转载 2022-07-06 20:08:13 · 2780 阅读 · 0 评论 -
left join详解
5.对于条件在on加个and还是用子查询,查询结果是一模一样的,至于如何使用这个需要分情况,用子查询的话会多一个maptask,但是如果利用这个子查询能过滤到很多数据的话,用子查询还是比较建议的,因为不会加载太多的数据到内存中,如果过滤数据不多的情况下,建议用on后面加and条件。2.在匹配阶段,where子句的条件都不会被使用,仅在匹配阶段完成以后,where子句条件才会被使用,它将从匹配阶段产生的数据中检索过滤。on后面:先根据条件过滤筛选,再连接生成临时查询结果。left join详解。转载 2022-09-20 20:27:43 · 4423 阅读 · 0 评论 -
SQLite3神奇的UNION、UNION ALL与LIMIT组合
原文链接:1|t1_d11|t2_d12|t1_d22|t2_d21|t1_d11|t2_d11|t1_d1sqlite>sqlite>1|t1_d12|t1_d21|t1_d12|t1_d21|t2_d12|t2_d21|t1_d12|t1_d21|t1_d11|t2_d12|t1_d22|t2_d21|t1_d11|t2_d12|t1_d22|t2_d21|t1_d11|t2_d12|t1_d22|t2_d2。转载 2022-09-21 17:52:06 · 825 阅读 · 0 评论 -
SQlite常用操作语法
一、SQL语句如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句1.什么是SQLSQL(structured query language):结构化查询语言SQL是一种对关系型数据库中的数据进行定义和操作的语言SQL语言简洁,语法简单,好学好用2.什么是SQL语句使用SQL语言编写出来的句子\代码,就是SQL语句在程序运行过程中,要想操作(增删改查,CRUD)数据库中的数据,必须使用SQL语句3.SQL语句的特点不区分大小写(比如数据库认为us转载 2021-07-31 12:30:35 · 892 阅读 · 0 评论 -
Sqlite3语法使用总结
模式, 即数据的显示方式, 有很多种, 但常用的就两个, .mode line用于表达式运算, .mode column用于表查询的多字段显示. 第二种通常还会开启信息头, 即字段名显示, .header on. 如果你想知道sql语句的执行时间, 可以.timer on.sqlite_master是一个特殊表, 存储有数据库的元信息, 如表(table), 索引(index), 视图(view), 触发器(trigger), 可通过select查询相关信息.逻辑运算符: ==,!转载 2022-09-30 10:04:13 · 838 阅读 · 0 评论 -
如何保证数据库和缓存双写一致性?
数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。我很负责的告诉大家,该问题无论在面试,还是工作中遇到的概率非常大,所以非常有必要跟大家一起探讨一下。今天这篇文章我会从浅入深,跟大家一起聊聊,数据库和缓存双写数据一致性问题常见的解决方案,这些方案中可能存在的坑,以及最优方案是什么。...转载 2022-08-09 23:59:36 · 88 阅读 · 0 评论 -
原子性和一致性的区别是什么?
重度参考了:https://www.zhihu.com/question/30272728/answer/72476703(讲的非常好,逻辑清晰)轻度参考了:https://www.cnblogs.com/fjdingsd/p/5273008.html(概念也比较清晰,只不过没有对比着这两个特性讲)概念原子性:一个事务内的操作,要么同时成功,要么同时失败一致性:一个事务必须使数据库从一个一致性状态变换到另一个一致性状态对于一致性,知乎链接中内容如下:从这段话的理解来看,所谓一致性,即,从实际的业务逻辑上来说转载 2022-06-29 10:54:00 · 1168 阅读 · 0 评论 -
这9种分布式ID生成方法,打死也要记住呀
一、为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够转载 2022-01-29 10:55:51 · 419 阅读 · 0 评论 -
15 种 SQL 优化中
SQL优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化SQL语句,因为它的改造成本相对于代码来说也要小得多。那么,如何优化SQL语句呢?这篇文章从15个方面,分享了SQL优化的一些小技巧,希望对你有所帮助。一、避免使用select *很多时候,我们写SQL语句时,为了方便,喜欢直接使用select *,一次性查出表中所有列的数据。反例转载 2021-12-06 20:55:42 · 139 阅读 · 0 评论 -
一次非常有意思的 SQL 优化经历:从 30248.271s 到 0.001s
场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表createtableCourse(c_idintPRIMARYKEY,namevarchar(10))数据100条学生表:createtableStudent(idintPRIMARYKEY,namevarchar(10))数据70000条学生成绩表SCCREATEtableSC(sc_idintPRIMARYKEY,.........转载 2021-02-09 15:12:15 · 118 阅读 · 0 评论 -
MySQL分页查询优化
当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。准备工作为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明。表名:order_history 描述:某个业务的订单历史表 主要字段:unsigned int id,tinyint(4) int type 字段情况:该表一共37个字段,不包含text等大型数据,最大为varcha转载 2021-02-08 17:12:15 · 93 阅读 · 0 评论 -
52条SQL语句性能优化策略
1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。2、应尽量避免在WHERE子句中对字段进行NULL值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。3、应尽量避免在WHERE子句中使用 != 或 <> 操作符。MySQL 只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的 ...转载 2021-07-31 16:22:03 · 104 阅读 · 0 评论 -
SQLite3中自增主键
SQLite清空表并将自增列归零SQL标准中有TRUNCATE TABLE语句,用来清空表的所有内容。但SQLite不支持这个语句。在SQLite中直接使用 DELETE FROM TableName 就可以了。对于大多数DBMS来说,用DELETE不如用TRUNCATE 速度快,因为TRUNCATE 不用访问整个表,不用记录数据的变动。SQLite虽然不支持TRUNCATE,但它对DELETE做了优化:通常在清空表的时候,还需要把自增列归零。在SQLite中定义自增列的方法如下:CREATE转载 2021-05-19 20:50:30 · 5333 阅读 · 0 评论 -
sqlite的事务和锁,很透彻的讲解
原文:sqlite的事务和锁 http://3y.uu456.com/bp-877d38906bec097sf46se240-1.html事务事务定义了一组SQL命令的边界,这组命令或者作为一个整体被全部执行,或者都不执行。事务的典型实例是转帐。 事务的范围事务由3个命令控制:BEGIN、COMMIT和ROLLBACK。BEGIN开始一个事务,之后的所有操作都可以取消。COMMIT转载 2018-01-24 11:14:18 · 526 阅读 · 0 评论 -
SQLITE3 使用总结
SQLITE3 使用总结 董淳光 42530 (老工号)dcg1981@163.com 2007年6月11日星期一前序:... 1一、 版本... 1二、 基本编译... 2三、 SQLITE操作入门... 2(1)转载 2015-01-24 13:30:24 · 326 阅读 · 0 评论