首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

阿里丁奇:说个 MySQL 面试的普遍问题 | 极客时间

前两天,我跟一个面试官聊天,发现一个普遍现象,不少候选人,对数据库的认知,还处在比较基础的阶段,以为会写“增删改”、做表关联就足够了,那些工作中经常出现的问题,却支支吾吾答不上来,比如: 使用索引查询一定能提高查询的性能吗...后来刷微博,看到诸霸转发了数据库大佬——丁奇的专栏《MySQL 实战 45 讲》。 这个专栏对我的影响很大,跟着学下来,让我对 MySQL 的理解上了一个新的高度。...在专栏中,他梳理了 MySQL 的主线知识,比如事务、索引、锁等;并基于这条主线上,带你缕清概念、机制、原理、案例分析以及本质,让你真正能掌握 MySQL 核心技术与底层原理。...除了内容打磨花费心思,课程答疑时间不比打磨正文少,还在凌晨两点回复过读者的问题。光评论体量就超过了 10 万字。...只要能认真跟着学,一定能搞懂 MySQL 中那些经典、巧妙的设计,并且把这些设计思路应用到自己的工作中,可以说是长期的影响到了我。 这是极客最早的专栏之一,但真正有价值的内容,是经得起时间检验的。

70630

node+mysql,实现基本的增删改,附带跟踪记录和运行时间记录

Node + mysql 实现基础的增删改,以及性能测试。 网上有很多这样的例子,我也是找来学习的。...不用区分增删改,反正都是这个套路,只要改改sql语句和参数就可以了。比ado.net简单和方便多了。 然后就是对性能的了解,每个步骤都花了多长时间?有没有坑,会不会出现浪费性能的写法?...为了更好的记录运行过程和时间,定义一个简单的类来记录 var msg={ title:'增删改的演示', startTime:t1, endTime:0, items:.../preciseTime').time; var num= 4; //开始运行时间 var t1 = time(); //跟踪记录 var msg={ title:'增删改的演示',...2、重点是 mysql.createConnection(cnString),第一次执行居然需要100多号码,不知道他都做了什么,不过好在再次执行的时间就快了很多,只需要0.5毫秒左右,似乎也是用了缓存

73250
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql查看查询慢的语句_sql慢查询如何优化

    、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙; -t, 是top n的意思,即为返回前面多少条的数据; -g, 后边可以写一个正则匹配模式,大小写不敏感的; 比如 /path/.../path/mysqldumpslow -s t -t 10 -g “left join” /tmp/slow-log 得到按照时间排序的10条里面含有左连接的查询语句。...mysqldumpslow -t 10 -s t -g “left join” host-slow.log这个是按照时间返回10条里面含有左连接的sql语句。...,lock的时间和返回的记录数来排序,前面加了a的时倒叙 -t,是top n的意思,即为返回前面多少条的数据 -g,后边可以写一个正则匹配模式,大小写不敏感的 mysqldumpslow -s c -t...mysqldumpslow -t 10 -s t -g “left join” host-slow.log 这个是按照时间返回10条里面含有左连接的sql语句。

    4K20

    Mysql慢查询和慢查询日志分析

    Mysql慢查询和慢查询日志分析 众所周知,大访问量的情况下,可添加节点或改变架构可有效的缓解数据库压力,不过一切的原点,都是从单台mysql开始的。...下面总结一些使用过或者研究过的经验,从配置以及调节索引的方面入手,对mysql进行一些优化。...c , t , l , r 表示记录次数、时间、查询时间的多少、返回的记录数排序; #                             ac , at , al , ar 表示相应的倒叙; # ...  /slowquery.log     #slow记录最多的10个语句 mysqldumpslow -s t -t 10 -g "left join"  /slowquery.log     #按照时间排序...mysqlsla /data/mysqldata/slow.log # mysqlsla会自动判断日志类型,为了方便可以建立一个配置文件“~/.mysqlsla” # 在文件里写上:top=100,这样会打印出100

    5.4K10

    HW防守 | Linux应急响应基础

    ./ | grep -E "\.jsp | \.jspx" | more 显示文件十行 head /etc/passwd 实时展示文件内容 tail -f 文件名 3、awk、sort、uniq awk...命令是用来把相邻的重复数据聚合到一起,加个c参数意思就是把重复次数统计出来,为什么先要用sort聚合一次呢,就是因为uniq命令只会聚合相邻的重复数据,最后那个sort命令刚才说了是用于排序的,他的n参数是以数字排序,r参数是倒叙排序...lastb查看连接失败的IP(可用于查看爆破信息) 登陆用户---登陆方式---登陆IP---时间 ?...8、history日志 位置:~/.bash_history 作用:操作命令记录,可筛攻击者执行命令信息 ?...9、其他日志 redis、sql server、mysql、oracle等 作用:记录访问信息 分析:敏感操作 web日志分析思路: ?

    1.2K30

    MySQL的order by该如何避免“未命中索引“

    不少同学私信我说,用Explain查看Order By语句执行计划时经常发现用不上索引,难道花好多时间和资源创建的联合索引都摆烂了?...8.0新特性-倒叙索引 desc index。...mysql> -- 使用了覆盖索引,MySQL 8.0新特性-倒叙索引 desc index mysql> EXPLAIN SELECT `hero_title`, `hero_name`, `price...因为我也感觉如果仅通过索引排序,即使select cols中使用到索引以外的列,仅用索引来排序再回表也当是没问题才对,但使用时发现并不行。当舔狗的机会都没有? 但!...` mysql> -- 未用到索引;因为多了一列`sex`,当然,如果是select * 就更不用说了,无法构成覆盖索引,因此回表进行全表扫描+临 时表排序(Using filesort),最慢 mysql

    2.5K21

    Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例

    它提供了包括增删改等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!...Hibernate对对象的维护和缓存要比MyBatis好,对增删改的对象的维护要方便。 Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。...-- mysql--> mysql mysql-connector-java</artifactId...page;// 如果page为负数则修改为0,防止在首页点击上一页发生错误 Sort sort = new Sort(Sort.Direction.DESC, "id");// 按id倒叙排列...username": "wmyskxz", "password": "123456" } 分页测试: 我们使用添加功能为数据库添加5条以上的数据,然后进行一次查询/all,可以看到能够按照id倒叙排列后返回

    1.5K10

    Mysql行级锁

    mysql中更是用处多多, 今天就一起看下mysql中的行级锁. 它主要包括行锁, 间隙锁, 临键锁三种. 首先我们先了解几个基础概念. 1....下面我们看下验证过程 5.2.1 一节点数据与当前节点间插入数据 事务B执行插入sql 被block了.证明区间(10,20)是被锁住的....关于是否包含右侧临界数据, 与mysql版本有关, 8.0之后版本是不包含的. 5.3.1 更新一节点数据 事务B更新一节点数据并执行成功, 说明对一节点不进行加锁操作. update tab...加锁原则 原则 1: 加锁的基本单位是 next-key lock. next-key lock 是开后闭区间. 原则 2: 只有访问到的对象才会加锁....索引在范围查询: 1.等值和范围分开判断. 2.索引在范围查询的时候 都会访问到所在区间不满足条件的第一个值为止. 3.如果使用了倒叙排序,按照倒叙排序后,检索范围的右边多加一个

    3.3K20

    flask mysql 数据库增删改(微信报修小程序源码讲解四)

    本文我们讲解数据库的增删改操作 , 每一个应用系统都离不开数据的交互 , 数据库的操作是必须掌握的技能 。...他的特点是:能够快速的完成数据库的增删改操作 , 同时还具有的分页查询的功能 ,我们不需要写具体数据库 sql 语句就可完成不同的数据库操作 。 如何一步一步完成数据库增删改操作呢 ?...这里我们使用的是 mysql ,每一行配置的作用,我均注释在代码后面,配置如下: # encoding: utf-8 # dialect+driver://username:password@host:...port/database DIALECT = 'mysql' # 要用是什么数据库,我使用的是 mysql DRIVER = 'pymysql' # 连接数据库驱动,pymysql 是 mysql...10条 users = User.query.order_by(User.id.desc()).paginate(page, per_page=10) # order_by 是排序,按照 id 倒叙排列查询

    1.7K41

    干货|MySQL增、删、改性能优化的10个小技巧

    前言   上一篇介绍了4种进行MySQL性能优化排查的小技巧,本篇就通过从增、删、改、的语法中如何进行优化,帮助大家更好理解MySQL语法,进行性能优化。...性能优化技巧   学习完如何使用调优工具定位需要优化的SQL后,下面就来认识SQL的增、删、、改进行优化技巧吧。...数据按照主键顺序插入(避免页分裂和重新指针指向,下面会具体介绍这两者的概念) 大数据量时使用load指令(如初始化时需要几百甚至上千万数据(百万数据十几秒),此时则使用load命令来进行插入数据,mysql...定义: 当页中数据被删除到MERGE_THRESHOLD(默认是页的50%),InnoDB会开始寻找最靠近的页(或后)看看是否可以将两个页合并以优化空间使用。...Using filesort优化方式: 给对应的字段创建联合索引(注意要根据排序的顺序或者倒叙指定索引的顺序) 如果不可避免出现filesort,在对大数据量排序时,可以释放增加排序缓冲区大小sort_buffer_size

    1.7K10

    脚撕LeetCode(844)Easy

    https://leetcode-cn.com/problems/backspace-string-compare 进阶: 你可以用 O(N) 的时间复杂度和 O(1) 的空间复杂度解决该问题吗?...https://leetcode-cn.com/problems/backspace-string-compare 要求: 时间复杂度O(N),空间复杂度O(1) 思路: 一、暴力破解法...时间复杂度O(N+M),空间复杂度O(N+M);很明显这种做法不符合题意 执行结果: 110 / 110 个通过测试用例 状态:通过 执行用时: 1 ms 内存消耗...因为#删除的是一位的字符,所以我们倒叙遍历; 执行结果: 110 / 110 个通过测试用例 状态:通过 执行用时: 0 ms 内存消耗:...通过倒叙找到,如果此字符非'#'则返回,如果为'#'则变量skip++,再次循环这个字符串,直到skip = 0 且字符非'#'为止; 两个字符串都重复以上操作,找到需要对比的字符,进行对比。

    23010
    领券