数据库与缓存
_yuki_
一路打怪升级,直至见到大魔王
展开
-
跨库分页 的四种方案
(ps:以mysql举个例)一、需求缘起分页需求互联网很多业务都有分页拉取数据的需求,例如:(1)微信消息过多时,拉取第N页消息(2)京东下单过多时,拉取第N页订单(3)浏览58同城,查看第N页帖子这些业务场景对应的消息表,订单表,帖子表分页拉取需求有这样一些特点:(1)有一个业务主键id, 例如msg_id,order_id,tiezi_id(2)分页排序转载 2017-03-01 10:37:09 · 789 阅读 · 0 评论 -
坐标 多种数据库计算GPS经纬度坐标距离
mysql计算GPS经纬度距离DELIMITER $$CREATEDEFINER=`root`@`localhost` FUNCTION`getDistance`(lon1 float(10,7),lat1 float(10,7),lon2 float(10,7),lat2 float(10,7)) RETURNSdoublebegindeclared double;decl原创 2017-04-26 15:00:09 · 2351 阅读 · 0 评论 -
DB主从一致性架构优化4种方法
需求缘起大部分互联网的业务都是“读多写少”的场景,数据库层面,读性能往往成为瓶颈。如下图:业界通常采用“一主多从,读写分离,冗余多个读库”的数据库架构来提升数据库的读性能。这种架构的一个潜在缺点是,业务方有可能读取到并不是最新的旧数据:(1)系统先对DB-master进行了一个写操作,写主库(2)很短的时间内并发进行了一个读操作,读从库,此时主从同步没有完成,故读取到了一个转载 2017-03-02 15:21:36 · 281 阅读 · 0 评论 -
数据库30条军规解读
一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间 (3)数据表、数据字段必须加入中文注释解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的 (4)禁止使用存储过程、视图、触发器、Event解读:高并发大转载 2017-03-02 14:45:36 · 405 阅读 · 0 评论 -
数据库秒级平滑扩容架构方案
一、缘起(1)并发量大,流量大的互联网架构,一般来说,数据库上层都有一个服务层,服务层记录了“业务库名”与“数据库实例”的映射关系,通过数据库连接池向数据库路由sql语句以执行:如上图:服务层配置用户库user对应的数据库实例物理位置为ip(其实是一个内网域名)。 (2)随着数据量的增大,数据要进行水平切分,分库后将数据分布到不同的数据库实例(甚至物理机器)上,以达到降低数据量转载 2017-03-02 14:44:08 · 1752 阅读 · 0 评论 -
100亿数据1万属性数据架构设计
对于version + ext方案,说明不仅不是“不可能这么用”,而是大数据,可变属性,高吞吐场景下的“常用手段”。 一、背景描述及业务介绍问:什么是数据库扩展的version + ext方案?使用ext来承载不同业务需求的个性化属性,使用version来标识ext里各个字段的含义。例如上述user表:verion=0表示ext里是passwd/nickvers转载 2017-03-02 14:41:45 · 922 阅读 · 0 评论 -
应对表扩展的一列
需求缘起产品第一版:用户有用户名、密码、昵称等三个属性,对应表设计:user(uid, name, passwd, nick)第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成:user(uid, name, passwd, nick, age, sex)假设数据量和并发量比较大,怎么变?(1)alter table add column?不太可行,锁表时间原创 2017-03-01 10:57:13 · 450 阅读 · 2 评论 -
一分钟掌握数据库垂直拆分
一、缘起当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表:user(uid bigint,name varchar(16),pass varchar(16),age int,sex tinyint,flag tinyint,sign varchar(64),intro varchar(256)…);转载 2017-03-01 10:49:23 · 310 阅读 · 0 评论 -
mysql Client does not support authentication protocol requested by server; consider upgrading MySQL
容器:docker18.03.1镜像:mysql 8.0连接方式:Navicat 11.0.16提醒一句:如果直接 mysql 是 镜像市场直接下载的 记得配置:MYSQL_ROOT_PASSWORD:你的密码错误:Client does not support authentication protocol requested by server; consider upgrading...原创 2018-05-07 15:29:34 · 24466 阅读 · 20 评论