MySQL
文章平均质量分 58
我是一只程序⚪
多读书,多看报
展开
-
用户关注表设计(查询包含是否互关等状态)
最近在写用户关注这方面的东西,本想偷懒,结果网上也没找到一个能在查出来粉丝列表的同时告知我是否与该用户为互相关注,又碍于项目没法用图数据库,只能自己写一写了表结构首先uid和followed_uid为本表的唯一主键, id为自增字段,用来统计,其他字段多为辅助字段。说明一下:status为1代表关注 为0代表未关注,这个的意义是在大部分情况下修改的效率是大于删除的。(大部分情况下修改不是单纯的删除再插入)create table user_follows( updated_at t.原创 2021-09-16 15:23:43 · 2665 阅读 · 6 评论 -
用户留存 Postgresql&&Mysql双版本
渠道留存 Postgresql&&Mysql双版本Postgresql版本是我工作在用的,写的留存是给我们公司后台用的,所以确保可用Mysql版本是我回忆Mysql语法改的,八九不离十,稍微改改问题也不大。postgresql版本---- 1. 获取需要查看留存的用户uid,create_timeSELECT id, to_char(created_at, 'YYYY-MM-DD') create_timeFROM usersWHERE to_char(users.crea原创 2021-06-10 19:35:30 · 228 阅读 · 1 评论 -
Kafka 实时缓存机制入门
目录1、缓存策略2、Kafka特性3、Kafka实时数据缓存4、Kafka的优点5、kafka集群图解6、实时计算架构1、缓存策略数据分析主要分为离线数据处理和实时数据处理:结构图大致如下:离线数据处理流程图:一般是对历史数据进行处理实时数据处理流程图:由以上两个流程图可以发现,kafka是一种可用于处理实时数据的...原创 2019-04-02 20:28:44 · 3903 阅读 · 0 评论 -
Mysql对字符串一部分添加索引
例如在公司中,每个人的工作邮箱@之后的内容是一样的,那如何只对@之前的字符串创建索引呢?首先需要了解以下几点:一、MySQL中字符串的截取MySQL中有专门的字符串截取函数:其中常用的有两种:substring_index(str,delim,count) 和concat1.substring_index(str,delim,count) 函数的使用较为普遍。函数括号...原创 2019-04-16 11:00:29 · 2822 阅读 · 3 评论 -
Mysql事务与隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(C...原创 2019-04-16 11:18:21 · 143 阅读 · 0 评论 -
MySQL多表联查的深入浅出
一、多表连接查询如下图,把学生和班级表进行合并,合并后就能知道每个学生的班主任都是谁。特点:(1)将分散在多个表中的信息(列)横向合并在一起(2)通常需要指明连接条件只要2个或多个表中列的数据类型类似(例如:都为数值型、都为字符型等)就可以连接在一起,但通常会根据列的实际业务含义进行连接,这样才有实际意义(3)多表连接查询和单表查询相比会耗费更多的系统资源...原创 2019-04-25 22:37:27 · 702 阅读 · 0 评论 -
2013,Lost connection to MySQL server during query 报错处理
今天在单位改bug,有一个表总是在写入数据的时候报2013的错误查阅了一下官方文档,总结一下3种可能性,一般都是第一或第二种原因。首先SQLAlchemy官方对该错误的解释:针对与数据库操作相关的错误而引发的异常,并且不一定在程序员的控制之下,例如, 发生意外断开连接,找不到数据源名称,无法处理事务,处理期间发生内存分配错误等。此错误是DBAPI错误,源自数据库驱动程序(...原创 2019-05-14 20:27:07 · 50888 阅读 · 2 评论 -
使用Celery+redis实现定时删除数据库过期信息
上次有个需求是数据库每天定时清理,最后使用了mysql自带的事件调度+存储过程完成了这个事情,详见(点击查看),但是事后仔细回味感觉这很不python,所以决定使用异步列队神器Celery来完成这个事情。首先需要用到redis来做缓存,所以首先需要保证电脑上有redis环境,安装教程参见我之前的redis教程(点击查看)这里假设已经安装好redis服务了,接下来就是安装python的依赖包:...原创 2019-06-01 19:20:19 · 2307 阅读 · 0 评论 -
MySQL定时删除数据表过期数据
需求:Mysql用户信息表,每隔15天进行一次清理,只保留15天内的用户数据1. 表结构class UserInfo(db.Model): __tablename__ = '用户信息表' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(32), index=Tr...原创 2019-05-29 21:27:23 · 2131 阅读 · 2 评论 -
吐血总结MySQL 8种性能优化方式
一、设置索引索引是一种可以让SELECT语句提高效率的数据结构,可以起到快速定位的作用。索引的优缺点:优点:某些情况下使用select语句大幅度提高效率,合适的索引可以优化MySQL服务器的查询性能,从而起到优化MySQL的作用。缺点:表行数据的变化(index、update、delect),简历在表列上的索引也会自动维护,一定程度上会使DML操作变慢。索引还会占用磁盘额外的存储空间。...原创 2019-03-30 16:47:27 · 19786 阅读 · 4 评论 -
Django构建数据库缓存
由于Django构建得是动态网站,每次客户端请求都要严重依赖数据库,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存memcached 、Redis中之前缓存的内容拿到,并返回。 Django缓存的配置和应用Django中提供了6种...原创 2019-02-20 13:02:47 · 2761 阅读 · 0 评论 -
【039】Python全栈日记-MySQL(二)
上次说过了,对于后端工程师,根本用不到创建删除等操作,我们用到最多的就是选择,如何把我们想要的数据从数据库中抽取出来,才是我们的本职工作,今天通过案例操作学习select知识点:一、上次补充Create的其他用法基于已有数据表 创建新表 并 复制所有 数据create table student1 as select * from student; (CTAS建表...原创 2019-01-16 08:22:37 · 371 阅读 · 0 评论 -
【040】Python全栈日记-MySQL(三)
本次继续学习数据库的一些操作,数据库的东西,难度不大,逻辑多,但是需要每天都敲一敲,要不今天学的明天早上一起床就没了。一、视图view属于关系型数据库中的一种常用数据对象,保存一段select语句,可以把视图名称当作普通表来使用创建视图语法:CREATE VIEW vtbl_name as select_statement;视图主要作用:1.提...原创 2019-01-16 08:24:06 · 236 阅读 · 0 评论 -
【041】Python全栈日记-MySQL(四)
一、数据库范式与设计基本原则1、关系型数据库的特点基本组成单位为二维表各二维表之间存在一定的关系为什么我们要用多张表而不是一张表呢?为什么不能把所有的信息都放在一张表中呢?以一张上课出勤表为例:如果我们说有的数据都放在一起首先会有大量的重复数据其次如果发生班主任或者其他信息变更,需要修改的地方会很多。2、范式范式是符合某一种级别的...原创 2019-01-16 08:25:52 · 174 阅读 · 0 评论 -
【042】Python全栈日记-MySQL(五)
本次学比较重要的两个东西用户管理和触发器函数过程,工作中经常会使用的第一部分:用户管理一、MySQL用户的特点和注意事项MySQL是多用户的数据库管理系统,可以通过授予或撤销权限来控制允许或不允许用户执行的操作用户从职权上可分为超级用户(root)和普通用户root用户不同于操作系统的root用户,默认对所有数据库和表具有完全访问权限普通用户在创建...原创 2019-01-16 08:27:47 · 233 阅读 · 0 评论 -
彻底删除mysql服务(清理注册表)
前言由于安装某个项目的执行文件,提示要卸载MySQL以便它自身MySQL安装,然后我禁用了MYSQL服务,再把这个文件夹删除后,发现还是提示请卸载MYSQL服务。--------------------------------------------------------------------禁用服务方式如下:或者 我的电脑右键->管理->服务,进入后手动禁用。...转载 2019-01-23 16:53:31 · 282 阅读 · 2 评论 -
Django 内置查询表达式
django 内置了很多查询表达式,建议过一遍 django 官方文档留个印象,了解每个表达式的作用,以后碰到相关的需求就可以快速定位到文档查询其用途:Field lookups django使用filter时为了提高查找效率,有以下几种常用方法: (1)containscontains是 精确大小写qs.filter(name__contains="e")SQL语句...原创 2019-02-15 14:47:56 · 1570 阅读 · 0 评论 -
如何解决多并发的问题
系统在正式上线后必将会面对大量用户访问,面对各种层级的高并发请求,因此我们会采用高性能的服务器、高性能的数据库、高效率的编程语言、高性能的Web容器等。但是这几个方面,还无法从根本解决大型网站面临的高负载和高并发问题。因此我们必须对此做出相应的策略和技术解决方案。1、负载均衡负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。(1)单个重负载的运算分担到多台节点设备上做...原创 2019-02-07 12:05:29 · 1493 阅读 · 0 评论 -
Django 不删除库进行数据库模型字段增加
1、在模型当中需要的位置添加字段2、使用Python manage.py makemigrations appname 单独同步刚刚修改的模型3、输入1选择第一项两个选项分别为:1)给刚刚设置的字段列提供一个默认值,否则将会设置为null值1) Provide a one-off default now (will be set on all existing row...原创 2019-02-13 15:43:04 · 1544 阅读 · 0 评论 -
【038】Python全栈日记-MySQL(一)
本次开始数据库的内容,主要以MySQL为主。一、MySQL简介1、MySQL历史:合伙人David Axmark, Allan Larsson和Michael Widenius“My”是 合伙奠基人Michael Widenius的女儿的名字“SQL”是结构化查询语言的缩写最流行的开源关系型数据库系统由瑞典公司MySQL AB公司开发1995年5月...原创 2019-01-16 08:21:05 · 593 阅读 · 0 评论