大家好,我渣渣烟。我曾经写过一篇《面试官:讲讲mysql表设计要注意啥》,当时写完后,似乎效果还行!
其实这下面每个问题,我都可以讲一篇文章出来!而且这些问题,不是我凭空编的。如下图所示(注意看第三题)
对于节假日,难得的假期,尤其是外出的时候碰上几个数据库报警,那些报警又属于不得不处理的时候,真是让人上火,所以也想了一些办法来尽可能杜绝和避免这种情况。
今天脑海里蹦出了一个词“周期”,对的,周期。我觉得好像是一只无形的手,像是路口的红绿灯,路边的指示牌,能够通过这些规则的变化让交通秩序稳中有序。
这是学习笔记的第 2300篇文章 最近在听得到头条的时候,有一篇内容感觉很不错,是《怎样当好一名外卖骑手》,本来是的带着一丝的娱乐意味来听的,没想到确实让我有了新的认识。 我整理了下思路,打算和大家简单聊聊。 我会按照两个维度来聊关于外卖骑手这件事,分别是: 1)打破认知思维,重新看待外卖骑手 2)如何在长期,持续的跑单工作中提效。 首先是打破认知思维,重新看待外卖骑手,这里我没有职业歧视,偶尔会和外卖小哥聊一下,发现他们全年几乎无休,总是在争分夺秒。换了一个思路来看,外卖骑手这个职业只要勤劳
这是学习笔记的第 2417篇文章 今天和研发团队沟通一个数据存储方案的设计和改造,大体的背景是在数据库中有些id类数据,如果数据类型是int,则存在一定的溢出风险,在程序层面需要提前考虑修改为int64,在MySQL中可以简单理解为bigint. 我们假设这个id字段为uid,如果是用户业务,则很多业务逻辑都是和这个uid强相关的,那么就会存在大量的业务梳理和研发代码的接入,如果底层数据存储的压力和风险过大,则这个事情的改进周期和影响范围就会更难以评估和控制。 所以这个问题从长期来看是未
在Oracle中,使用分区表是一种很自然的事情,数据库容量基本都是500G起,大小在5T以上都是很常见的。
部署在后台服务器或者云端的MySQL大部分做了一些限制,在本地无法直连后台服务的数据库3306端口上,一般有防火墙之类的网络中间件
MySQL作为一个非常流行的关系型数据库,客户端软件其实非常多,下面我简单介绍几个,感兴趣的朋友可以尝试一下:
MySQL的优化主要分为结构优化(Scheme optimization)和查询优化(Query optimization)。本章讨论的高性能索引策略主要属于结构优化范畴。本章的内容完全基于上文的理论基础,实际上一旦理解了索引背后的机制,那么选择高性能的策略就变成了纯粹的推理,并且可以理解这些策略背后的逻辑。
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
这是学习笔记的第 2421篇文章 有时候想起一些工作和生活中的改变自己的机会还是蛮有意思的,绝对不是标榜所谓的成功,因为我远远达不到,仅仅是对我个人来说,回过头来看这些转折点都很偶然,有些场景到现在都难以关联起来,但是结果就是如此。所以,我觉得我们工作中不要有太强的功利性,需要多一些耐心,保持好奇心。 比如我2009毕业后工作的第一家公司,是在一个社会招聘会中碰到的,当时大环境不好,就业形势还是比较严峻的。我在诺大的会场中转来转去,没有方向,基本都是一些偏技术支持的岗位多一些,当时这家招聘的要
这是学习笔记的第 2411篇文章 今天和同事在聊天的时候,我们谈到了一个有意思的问题,那就是对于工作的业务价值和技术价值的衡量。具体的维度和考量就不细说了,大体的意思有两点:首先是不要什么事情都需要上纲上线,时间长了难免会焦虑,都想往价值上去靠,挖空心思包装自己的说法,会更让自己陷入迷茫之中;第二是得有一个轴,也就是我们在一段时间里做事情,一定是有轻重缓急,那么这个核心的轴我们得把握中,而且得把握平衡,否则就是撒芝麻,没有轻重,全是碎片化。 同时在我的观察中,我发现很多职场老鸟都在如下的几个方面存在或多
这是学习笔记的第 2409篇文章 最近在琢磨一个问题,那就是我们每天上下班的路上会接收大量的信息,但是经过时间的沉淀之后,能够留下来的信息是少之又少,这一点让我很焦虑。 像开车上下班的路上,我有时候会听一些访谈和解读,带给我最大的收获是听起来有道理,但是要让我说个一二三,就感觉词穷了,而过了一段时间之后,其实这种听的效果跟没听没什么差别。 对此我做过一些尝试,比如我在路上听《冬吴同学会》,会听个大概,等到公司之后的时候就会找一下相应的文字版,从大段的文字中找到要点和观点,但是这种
最近一直想写点博客,但是不知道写什么,感觉自己最近的知识没有什么增加,今天想到了一篇可以写的博客。以前试过根据data文件夹备份MySQL,但是从来没有成功过,前几天帮助朋友还原MySQL,终于成功的将备份的data文件夹还原成功了。
这是学习笔记的第 2407篇文章 最近在梳理工作的时候,做了一些小结。 首先是对于工作情况的量化,如果我们只是说自己做了什么什么事情,可能洋洋洒洒几十页ppt,也会让别人看得云里雾里,如果不是这个专业方向的人,基本都会有点晕菜,所以对于这个事情的抓手就是需要有一个参考基准,有了这个基准,你所做的事情都有一个对比,到底是多了还是少了,多了多少,少了多少,具体哪些多了,哪些少了都可以通过数字量化得到答案。 比如对于数据库服务能力的量化,我是选用了信通院开发的这个模型,通过评估惊人的发现我们做
SQLPro for MySQL Mac版是一款mac SQL数据库管理工具,轻量级但功能强大的数据库mysql客户端,允许快速和简单的访问MySQL服务器,包括那些驻留在Amazon RDS,方便和快速的连接到MySQL数据库,图形界面,支持多种主题,代码高亮,语句查询等。
为什么你写的sql查询慢?为什么你建的索引常失效? 通过本篇内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句。
最近博客一直想写点。可是不知道写什么,感觉自己近期的知识没有什么添加,今天想到了一篇能够写的博客。曾经试过依据data目录备份MySQL。可是从来没有成功过。前几天帮助朋友还原MySQL,最终成功的将备份的data目录还原成功了。
命名规则:表名_字段名 1、需要加索引的字段,要在where条件中 2、数据量少的字段不需要加索引 3、如果where条件中是OR关系,加索引不起作用 4、符合最左原则
背景: 为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。
发现没有用到索引,type全是ALL,那么首先想到的就是建立一个索引,建立索引的字段当然是在where条件的字段。
原文链接:http://www.toutiao.com/a6730869910135636494/
DBA同学在工作中不可避免和开发同学打交道,和开发的同学在交流中还是有不少的小插曲,有些想想也蛮有意思,但是有些是痛点。 我举几个例子来说明,可能比较片面,但是只是为了说明问题,达到交流的目的即可。 oracle知识和sql水平不足 ddl中的commit 我相信很多DBA都会看到这样的sql脚本。 create table test(id number,name varchar2(30)); commit; 其实这个就是对于ddl的理解有偏差,ddl压根就不需要这样的commit
设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率。设计MySql索引的时候有一下几点注意:
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode。
官方定义:索引是帮助mysql高效获取数据的数据结构。划重点:数据结构。在数据之外,数据库系统还维护了一套满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这种数据结构就是索引,可以简单的理解为”排好序的快速查找数据结构”。索引本身也很大,不可能全部存储在内存,通常以索引文件的形式存储在磁盘中。
最近在团队内聊了下关于MySQL 8.0的特性调研工作,其实线上已经稳定运行了近20%的业务,但是很多思维模式和习惯还是继承自5.7,所以需要与时俱进,在技能上能够引导开发同学,在后端的支持上能够做到游刃有余。
Metric:mysql.innodb_row_lock_waits Tags:port=4306,service=xxxx diff(#1): 996>900
索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。 表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。 大多数MySQL索引(PRIMARY KEY、UNIQUE、INDEX和FULLTEXT)在B树中存储。只是空间列类型的索引使用R-树,并且MEMORY表还支持hash索引。
备份与恢复⼯具BR:https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-tool
在公司实习的时候,导师分配了SQL慢查询优化的任务,任务是这样的:每周从平台中导出生产数据库的慢查询文件进行分析。进行SQL优化的手段也主要是修改SQL写法,或者新增索引。
可以先看下这篇理论介绍: MySQL|索引背后 01 MySQL的几种KEY PRIMARY KEY 有两个作用,一是约束作用(constraint),用来规范一个存储主键和唯一性,但同时也在此key上建立了一个主键索引;每个表都应该有一个主键,并且每个表只能有一个主键。 UNIQUE KEY 与 PRIMARY KEY相似,只不过每个表可以有多个主键。 FOREIGN KEY 也是在这个key上建立一个index ,如下所示: FOREIGN KEY(emp_no) REFERENCES e
有人从网上搜集了52 条 SQL 语句性能优化策略,在各大技术网站和公众号广为流传, 我对其中的一些观点有不同看法(其中一些规则本身就没有描述清楚,或者是自相矛盾), 下面内容黑色部分是原文,以tiger开头并标红的内容是我的点评,大家可以参考一下:
关注公众号:程序员白楠楠,领取2020最新Java面试题手册(200多页PDF文档)。
索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。通过索引,可以让数据库不必全表扫描,直接快速访问到符合条件的记录,大大加快了查询速度。
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
关于 MySQL 相关的文章和教程发布了很多,关注微信公众号 Java后端,回复 666 下载就行了。
简化 SQL 语句的重要方法就是采用临时表暂存中间结果。但是临时表的好处远远不止这些,将临时结果暂存在临时表,后面的查询就在 tempdb 中了,这可以避免程序中多次扫描主表,也大大减少了程序执行中“共享锁”阻塞“更新锁”,减少了阻塞,提高了并发性能。
这是学习笔记的第 2420篇文章 对我们大多数人来说,精力是一种稀缺的资源,因为精力有限,所以如何有效的进行时间管理是很长一段时间以来我一直在尝试和改进的,清单模式我们小团队践行了近1年多,今年疫情以来自己也在不断的调整,这个过程中我也摸索出一些想法来,说实话到现在为止也仅算是一个小学生。 最近打算入手Omnifocus,结果无意中找到一本书《小强升职记》,篇幅不长,是故事形式的描写,看起来很有画面感,所以果断入手了。 书里面提炼了一个方法论叫做:3+1清单视图,这个推导过程是很深刻和震
模糊匹配 jg%,结果以JG开头的字符串也出现在结果集中,大家很自然的认为是大小写敏感的问题。那么mysql中大小写敏感是如何控制的;数据库名,表名,字段名这些字典对象以及字段值的大小敏感是如何控制的;以及校验规则与索引的关系,这是本文要讨论的内容。
索引 索引的使用 什么时候使用索引表的主关键字 表的字段唯一约束 直接条件查询的字段 查询中与其它表关联的字段 查询中排序的字段 查询中统计或分组统计的字段 什么情况下应不建或少建索引 表记录太少 经常插入、删除、修改的表 数据重复且分布平均的表字段 经常和主字段一块查询但主字段索引值比较多的表字段 复合索引 命中规则 需要加索引的字段,需要在where条件中 数据量少的字段不需要索引 如果where条件中是or条件,加索引不起作用 符合最左原则 · 最左原则:Mysql从左到右的使用索引中的字段,一个查询
1、客户端端与Mysql服务端的连接层建立连接,根据请求类型去选择相应的服务层的请求接口。
1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
索引在关系型数据库中,是一种单独的、物理的对数据库表中的一列或者多列值进行排序的一种存储结构,它是某个表中一列或者若干列值的集合,还有指向表中物理标识这些值的数据页的逻辑指针清单。 索引的作用相当于图书的目录,可以根据目录重点页码快速找到所需要的内容,数据库使用索引以找到特定值,然后顺着指针找到包含该值的行,这样可以是对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。
假如有联合索引 (emp_no 、title、from_date ),那么下面的 SQL 中 emp_no 可以用到索引,而title 和 from_date 则使用不到索引。
领取专属 10元无门槛券
手把手带您无忧上云