
数据库
文章平均质量分 95
D_Guco
it互联网/游戏
展开
-
TiDB 数据库开发规范
原文链接:https://asktug.com/t/topic/93819一、前言1. 目的 本文档旨在为使用 TiDB 数据库的应用和系统提供统一规范参考,标准化 TiDB 数据库的开发使用及SQL优化流程,提高业务开发系统的规范性和代码的可读性,减轻维护工作量,提高工作效率。2. 适用范围TiDB 数据库开发设计人员 数据库管理人员 数据库运营人员 数据分析人员 数据库架构师4. 注意事项TiDB 暂时不支持的特性:存储过程 触发器 自定义函数 外键约束..转载 2021-06-27 14:07:16 · 1660 阅读 · 0 评论 -
从零开始搭建tidb集群
参考文章:TiDB-Ansible 部署方案 很早就想亲手搭一下tidb集群,昨天搞了一下午结果失败了(因为自己买的机器配置太低,还有自己配置环境的时候有些配置没配好),今天把之前的机器删掉又重新申请机器按照文档把所有的步骤重新走了一遍,总算成功了。一 准备机器 首先看一下官方的配置要求:TiDB 软件和硬件环境建议配置 , 官方配置要求很高(当然价格也很高,没钱啊),而...原创 2020-08-12 17:29:11 · 12555 阅读 · 3 评论 -
TiDB 优化方案和常见问题
一 关于tidb的排序 1. 按照字节序的顺序扫描的效率是比较高的; 2. 连续的行大概率会存储在同一台机器的邻近位置,每次批量的读取和写入的效率会高; 3. 索引是有序的(主键也是一种索引),一行的每一列的索引都会占用一个 KV Pair,比如,某个表除了主键有 3 个索引,那么在这个表中插入一行,对应在底层存储就是 4 个 KV Pairs的写入:数据行以及 3 个索引行; 4. 一行的数据都是存在一个 KV Pair 中,不会被切分,这点和类 BigTable...原创 2020-05-24 12:57:33 · 4042 阅读 · 0 评论 -
c++后台开发知识点收藏
收藏一些后台开发相关的知识点1 linux系统 https://blog.youkuaiyun.com/ThinkWon/article/details/1045886792mysql数据库https://thinkwon.blog.youkuaiyun.com/article/details/1047786213 redis数据库https://thinkwon.blog.youkuaiyun.com/art...原创 2020-04-10 15:51:48 · 375 阅读 · 2 评论 -
基于skiplist实现高效的排行算法(redis zset)
首先什么是skiplist,在往下看之前先看一下下面几篇文章吧 我之前写的一篇关于skipList的文章 深入理解skiplist 了解skiplist后我们说道排行榜,排行榜实际上就是一种排序算法,常见的排序算法就是二叉树系列,红黑树,最小堆,最大堆等等,虽然他们可以提供排序功能,它们要找到一个值也很快,但是要想知道这个值排名第几,似乎只能按照先序遍历的方式来...原创 2020-01-12 22:26:28 · 1370 阅读 · 2 评论 -
MySQL InnoDB索引原理详解
1 简介 索引(Index)是帮助MySQL高效获取数据的数据结构。我们知道,数据库查询是数据库的最主要功能之一。但每种查找算法都只能应用于特定的数据结构之上,例如二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织),所以,在数据之外,数据库系统还维护着满足特定...原创 2019-10-20 18:10:09 · 454 阅读 · 0 评论 -
15分钟了解TiDB
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换。 一 TiDb简介 TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 HTAP (Hybrid Transactional and ...原创 2019-07-13 22:21:49 · 132395 阅读 · 18 评论 -
redis 的持久化机制
之前去面试,问到redis的持久化问题,虽然知道一点但是有一些细节还不是很清楚,随意这里记录下有关redis 的持久化的问题,redis跟memcached类似,都是内存数据库,不过redis支持数据持久化,也就是说redis可以将内存中的数据同步到磁盘来持久化,以确保redis 的数据安全。一 什么是持久化 什么是持久化?简单来讲就是将数据放到断电后数据不会丢失的设备中...原创 2019-05-19 14:15:12 · 328 阅读 · 0 评论 -
分布式锁实现原理
一 首先我们来回顾下普通锁的种类。1 自旋锁 自旋锁如果已经被别的线程获取,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,”自旋”一词就是因此而得名。自旋锁是一种非阻塞锁,也就是说,如果某线程需要获取自旋锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取自旋锁。2 互斥锁 (Mutex Lock) 互斥锁是...原创 2018-09-10 00:31:20 · 1508 阅读 · 0 评论 -
memcached分布式缓存
一 缓存 当一个系统的数据io性能遇到瓶颈的时候,我们常用的手段是缓存,缓存的本质是一个内存hash表,数据缓存以一对key,value的形式存储在hash表中,其读写的时间复杂度为O(1),但是我们也要合理的使用缓存,否则会适得其反。那么什么样的数据要做缓存?如何合理的使用缓存呢?1 频繁修改的数据不适合做缓存,如果一个数据频繁修改,会出现数据缓存写入后还未来得及读取缓存,数据已经原创 2018-01-07 13:04:47 · 986 阅读 · 0 评论 -
mysql 数据引擎
Mysql中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型),MySql默认配置了许多不同的存储引擎,可以预先设置或者在MySql服务器中启用。原创 2017-08-13 15:24:47 · 1101 阅读 · 0 评论 -
悲观锁定与乐观锁定
为了避免丢失更新(更新冲突),要使用某种锁定策略,共有两种锁定策略:悲观锁定或乐观锁定。一、悲观锁定(pessimistic locking):1.表现:用户在屏幕上修改值之前,这个锁定方法就要起作用。例如,用户一旦有意对他选择的某个特定行(屏幕上可见)执行更新,如单击屏幕上的一个按钮,就会放上一个锁。(悲观的认定每次数据存取,其他客户端也会同时存取这一数据,因而马上锁定,直到原创 2017-04-09 18:19:56 · 663 阅读 · 0 评论