2

sql文件查看器(数据库文件查看)

hive

使用explain dependency查看SQL查询非分区普通表。

杭州一面向业务程序员:

做面向业务的码农坐久了会不会就毫无竞争力了?比如在某度 feed 做推荐, md 根本摸不到算法。天天就是 shel , c ++ crud , sql ,查 case ,整个上线小流量实验也非常麻烦,时间都浪费在效率极低的事情上了,而且这些事对自己没什么提升。还有做 gr 的同学天天调权,打压。最害人的是招人的时间还骗你让你认为是在用模型和算法,进来后碰都碰不到。而且还是垂类这条业务线。招人的时候能不能摸摸自己的良心,还有吗?

观点一:招人的时候忽悠人说是算法,干起来这哪儿是什么算法啊。不过是业务和指标导向的开发crud + sql boy。

观点二:哎,我被招到现在单位的时候,说好干系统编排,结果,改遗留bug改了两年。

观点三:模型都基本稳定了,最近面试了好多人都是缝缝补补,就是有个大厂光环但是职级又比较低。

对此,你怎么看?

#杭州职业故事# #杭州头条#

这几天被一个bug这么惨了,今天下决心解决它。

系统基于spring mvc,现象就是有个表的一个字段总是莫名奇妙值被改了,日志跟踪不到具体位置。本地和测试环境都无法复现,线上环境也是偶发。

在公司加班到半夜,从逻辑上跟踪怎么也查不出位置。没办法,决定在生产环境使用trace跟踪sql。万万没想到,改了几台日志级别后,这才发现服务全挂了。[泪奔]

我感觉地球都停止转动了,好像回到了夏天,立刻惊出一身冷汗。用户电话马上打了过来,我赶紧解释进行修复,可是越急越乱,决定用jenjins重新部署。war包很大,平时很正常的服务,部署了几次居然还没成功,tomcat全是一启动就挂。

最后折腾半个多小时,才意识到服务器上logback改错了位置,终于重新启动了服务。

忙到半夜,bug还没找到,反倒自己精疲力尽。还是早休息吧,感觉年龄大了,可能不适合一线开发了。[流泪]

Go语言的ORM(对象关系映射)库,对开发者友好,提供可扩展灵活的插件API,可以自动迁移,支持功能测试。

GORM的主要特性包括如下:

功能齐全的ORM;

关系(一对一、一对多、从属、多对多、多态、单表继承);

挂钩(创建之前/之后/保存/更新/删除/查找);

使用Preload、Join进行预加载;

事务、嵌套事务、保存点、回滚到保存点;

上下文、预编译语句模式、DryRun模式;

批量插入、FindInBatches、查找到映射;

SQL Builder、Upsert、锁定、优化器/索引/注释提示、NamedArg、使用SQL Expr搜索/更新/创建;

复合主键;

自动迁移;

记录器;

可扩展、灵活的插件API:数据库求解器(多数据库、读写分离);

每个功能都带有测试;

开发者友好。

该项目已经在GitHub上获得了28.5k的Stars。

GitHub地址:GitHub - go-gorm/gorm: The fantastic ORM library for Golang,...

开源协议:MIT license

项目主页:GORM - The fantastic ORM library for Golang, aims to be deve...

hive

使用explain dependency识别SQL读取数据范围的差别。

在使用过程中,容易认为代码片段2可以像代码片段1一样进行数据过滤,通过查看explain dependency的输出结果,可以知道不是如此。

对左外连接在连接条件中加入非等值过滤的条件,如果过滤条件是作用于右表(b 表)有起到过滤的效果,则右表只要扫描两个分区即可,但是左表(a表)会进行全表扫描。如果过滤条件是针对左表,则完全没有起到过滤的作用,那么两个表将进行全表扫描。这时的情况就如同全外连接一样都需要对两个数据进行全表扫描。

如果要使用外连接并需要对左、右两个表进行条件过滤,最好的方式就是将过滤条件放到表的就近处,即如果已经知道表数据过滤筛选条件,那么在使用该表前,就用该过滤条件进行过滤,一些SQL内置优化器也会做上述的优化,但是还是建议按上面介绍的方式写出来。例如,将代码片段2改写成如案例6.7所示的形式,即在使用表数据之前尽可能过滤掉不需要的数据。

面试3个月精心整理的一份面试题(涵盖多家公司)

xxx教育(做儿童教育) (基础性问题)

1.对spring ioc的理解,Spring如何解决循环依赖的。

2.对spring aop的理解(还有一个问题拦截器与什么什么的区别忘了)

3.常用注解,每个是干嘛的

4.ArrayList模型与扩容(不知道)

5.hashMap的底层实现与扩容与结构。是否是现成安全的,引发问题,有什么现成安全的。hashtabal是怎么保证线程安全的,c***hashmap底层实现。红黑树与B+树区别。

6.String s = “1”;

String y = s; == 相等么?

============

String s = “1”;

s=s+“1”;

String y = s; == 相等么?

== 与equese区别。

7.int a = 1;int b =1; == 相等么?

8,说下类加载,说下双薪委派。

9.说一下聚簇索引与非局促索引,数据库引擎,与他们的区别。

10.说一下mysql事务隔离级别,分别会引发什么。举例脏读,不可重复读,幻读。实际场景是什么样子。

11.mybaits是怎么定位到对应mapper接口的。

12.redis数据结构,redis持久化方式,与做了哪些优化。redis怎么扩容。

13.SpringAxxx.run()大致启动流程。为什么可以扫到对应注入的bean。

14.list有线程安全的么(我忘了 说一般都用queue解决的。)

15.String事务传播,开发时候需要注意什么,

16.mybatis #{}与${}

做小孩教育和只能路由器的 (组件能力)

1.线程池工作原理。

2.redis哨兵怎么选举的(忘了,后来说的zk选举策略我知道,聊得zk)。

3.zk如何选举的,在什么情况会产生脑裂问题。

4.redis底层数据是怎么存储的。

5.项目中做过哪些优化。造成过哪些瓶颈,举个例子。

6.消息队列使用的是异步还是同步,怎么确保投递。(事务消息与ack)

7.mybaits原理有了解么。

8.redis为什么会快。

9.redis雪崩怎么解决。布隆过滤器原理。

10.mq你们采用的同步刷盘还是异步刷盘。

11.分布式定时任务有没有用过,采用的什么。

信聊(好像做通信软件) (分布式事务组件能力 + 消息能力)

1.seate怎么实现分布式事务的。

2.讲一下zk分布式锁的实现。(说了一下流程,然后对应zk api的一些操作的方法名称)

3.假设一种场景支付场景。15分钟未支付,库存和订单状态怎么修改。

回答mq,延迟消息。15分钟执行查询把未支付的订单失效,修改库存数。

引发问题:如果不用查询数据库,用redis怎么做。(这个我想了半天没想出来,但是前面的解决方案已经可以,最后面完简单的和我说了下 zset,一下就知道了,然后和他描述了下)

4.用户使用系统忽然特别慢,怎么排查。(与昨天问题类似,我回答这个问题那面就非常广了,面试官说没有关系,你可以发散的聊聊)

1.那首先top一下,定位到底是哪个系统,获取到pid,

2.在用cd /proc/pic 可以定位到项目目录

3.获取dump文件,对项目对应的log文件。

4.如果cpu过高,可以采用紧急扩容,扩大堆栈内存,扛过当下。

5.查看最近上线版本,如果能在准生产复现,可以用Jconsou链接准生产,查看是否有锁,或者对象没释放。改bug

6.也有可能是sql性能引发,可以根据log文件查看有没有慢sql

7.粘出sql查看执行计划,看看有没有扫描全表all的情况。如果有,加索引。

8.如果加索引也解决不了,那查看子查询,是否关联条数太多,尽量过滤数据,比如先把数据分好组,在进行查询。

xx思维公司 (Spring 源码问的比较多)

spring ioc的bean管理

Spring的aop做日志管理,直接调用方法A和方法B日志可以打印出来,如果方法A里面调用方法B,方法B里面会打印日志吗,为什么

springCloud调用链如何设置串联起来的标示

Springcloud的断路器你都用到了哪些功能

springboot的starter你了解吗,说一说,如果redis我们在配置文件里面部配置地址等参数,即使引用了jar,引用redisTemplate也不能使用,知道他是怎么实现的吗

mysql你们用的什么版本,用的什么引擎。平时做过什么优化

redis你们主要用来干什么,redis锁怎么实现的,如果我程序执行慢,锁失效了程序还没执行完成,你是怎么处理的

ApplicationContext怎么获取的

如果 Web 开发人员依赖 PHPMyAdmin 或 Adminer 等 MySQL 管理工具来组合数据库模式,这是否很糟糕?

不。当您使用这些工具而对您在做什么一无所知时,情况只会变得更糟。

至少十年以来,我一直使用 Sequel Pro 作为我的主要 MySQL 客户端,我可以毫无疑问地说它提高了我管理实时数据库的速度。现在我正在使用 ORM 来管理表的实际创建等,这非常顺利和轻松,但总有一些情况你需要深入了解 SQL 并能够手动查看内容。

在这些情况下,PHPMyAdmin 不仅仅是一个称职的工具,因为当今许多托管环境不提供 SSH 隧道和/或您对命令行 SQL 感到不舒服。

如果你仍然在没有 ORM 的情况下管理你的数据库,我会说一个好的客户端,无论是基于 Web 的还是平台软件,是高效工作的关键。那些从曙光初现以来就没有见过命令行外部的硬核 DBA 可能会有所不同,但是一个好的 UI 会让您免于在 CLI 中进行表更改、键定义等的痛苦,这将为您提供更多是时候实际处理您的应用程序了。

但是,看看可用于您的平台的任何 ORM,它可能会从根本上改善您的工作流程!

[18禁]分享个好玩的低代码工具,一分钟开发个Java接口

当我们在进行敏捷开发的时候,有很多业务上非常简单,但是还不得不写的增删改查代码,封装PO对象、定义持久化、service、Controller一大套,非常多重复的接口实现,本来就一条sql解决的,可必须写一大堆没技术含量的代码。

那么有没有什么工具可以快速开发一些,基础表的简单逻辑接口呢?

这里给大家介绍个低代码工具

magic-api 一个基于Java的接口快速开发框架,通过magic-api提供的UI界面完成编写接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发。

[太阳][撒花]详细使用: 网页链接 (我也没想到,Java开发 API接口可以不用写 Controller了)欢迎stars

#程序员#

《如何学好编程?》(九)熟悉数据库

数据库就是根据数据结构来组织、存储和管理数据的仓库,这里不说大数据,只说普通的关系型和非关系型数据库。

可以把关系型数据库(RDBS)理解为一个Excel表格,每列是字段,每行就是一条记录。Excel有多个二维表,每个表都是由行和列组成的。关系数据库里存放的也是一张张二维表,各个表之间存在关系。简单来说:关系数据库由多张二维表和各表之间的关系组成。

非关系型数据库,也叫NoSQL则可以理解为一个Key-Value文档树,里面有很多属性,每个属性对应一个值。NoSQL 数据库的类型因数据模型而异,主要类型包括文档、键值、宽列和图形。

关系型数据库通过SQL来进行增(Create)删(Delete)查(Read)改(Update)操作,已实现对数据的管理。SQL语句很简单,类似用英语说指令,稍微熟悉即可掌握。但要设计一套优雅的业务数据库,却并非易事,尤其是对于复杂业务来讲,我们的设计需要符合数据库设计范式。当然数据库范式也很简单,主要目的在于表和表之间的独立和解耦,便于未来扩展和数据的修改、查找等,为了设计好数据库,一般会设计ER实体关系图(Entity Relationship Diagram)。关系型数据库为保证一个数据操作事务(transaction)的正确可靠,一般要求具备四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。这些概念,随着数据库的开发经验积累渐渐就明白了。

NoSQL数据库不需要建立关系模型,因此存储结构比较简单,在查询会非常快。NoSQL相比关系型数据库还可以更方面扩容和做分布式设计,非常灵活。NoSQL各文档间缺乏标准化规则,通常采用针对文档按对象进行链式调用来查询,这样在写语句时不如SQL那么强大,而且有时候需要多次连接,同时它也不提供事务的一致性。当数据量增加时,由于key变得困难,很难维护key的唯一性。

由于RDBS和NoSQL的特性,一般关系型数据库会用来做强关系的业务系统,而非关系型数据库则用来做高性能的缓存、键值读取等。当然理论上NoSQL和MySQL可以互相替代。

作为程序员,不是DBA,一般掌握基本的SQL和NoSQL语句即可,不一定需要多么强大的数据设计和管理能力,但一定要理解其中的基本原理。数据库的设计和操作对于系统健壮性和性能至关重要。

#编程真的能改变人的思维方式吗# #零基础该如何学习编程#

HikariCP号称是业界跑得最快性能最佳的数据库连接池,自从SpringBoot 2.0将其作为默认的连接池之后,HikariCP发展势头锐不可当。

目前市面上常见的连接池有:c3p0、DBCP、Tomcat JDBC Connection Pool、Druid 、HikariCP等,官网上对这五种数据库连接池的性能排序如下:HikariCP > druid > tomcat-jdbc > dbcp > c3p0,所以HiKariCP火是必然的。

当然Druid也很优秀,是Alibaba开源产品,在功能上完胜HikariCP,提供了连接池的监控UI界面,可以很方便的查看连接池的运行情况以及提供了sql拦截功能等,但性能上不如HikariCP。#程序员# #职场达人炼成记#

SQLite 3.38.0 现已发布。SQLite 是一个 C 实现的 SQL 数据库引擎,它的特点是小型、快速、自包含、高可靠性和功能齐全。SQLite 嵌入在所有手机和大多数计算机中,也捆绑在为数众多的其它应用中,是世界上使用量最大的数据库引擎。

主要变化:

添加了 -> 和 ->> 运算符以便于处理 JSON。新的运算符与 MySQL 和 PostgreSQL 兼容。

JSON 函数现在是内置的。不再需要使用 -DSQLITE_ENABLE_JSON1 编译时选项来启用 JSON 支持。默认情况下启用 JSON。使用新的 -DSQLITE_OMIT_JSON 编译时选项禁用 JSON 接口。

日期和时间功能的增强:

添加了 unixepoch() 函数。

添加了 auto 修饰符和 julianday 修饰符。

将 printf() SQL 函数重命名为 format() 以获得更好的兼容性。保留原始 printf() 名称作为别名以实现向后兼容性。

添加了 sqlite3_error_offset() 接口,有时可以帮助将 SQL error 定位到输入 SQL 文本中的特定字符,以便应用程序可以提供更好的错误消息。

增强了 virtual tables 的接口如下:

添加了 sqlite3_vtab_distinct() 接口。

添加了 sqlite3_vtab_rhs_value() 接口。

添加了新的 operator 类型 SQLITE_INDEX_CONSTRAINT_LIMIT 和 SQLITE_INDEX_CONSTRAINT_OFFSET。

添加了 sqlite3_vtab_in() 接口(及相关接口)以使 virtual table 能够一次处理所有 IN operator 约束,而不是单独处理 IN operator 右侧的每个值。

CLI enhancement:

Columnar output modes 得到增强,可以正确处理嵌入在文本中的制表符和换行符。

在 Columnar output modes 中添加了“--wrap N”、“--wordwrap>

#crudapi# 分享一个零代码开发工具,程序员接单神器。crudapi是crud+api组合,表示增删改查接口,是一款零代码产品。无需编程,通过配置元数据自动生成crud增删改查RESTful API

前端:Vue + Quasar

后端:Spring Boot + Jdbc

数据库:MySql+Postgresql+Oracle+MSSQL

很多低代码开发工具都止步于表单设计器,解决了界面和数据结构可视化设计的问题,但没有解决业务逻辑可视化设计的难题。为了方便没有编程基础的用户设计程序的业务逻辑,TaskBuilder借鉴少儿编程软件Scratch,提供了图形化的业务逻辑设计器,可以通过鼠标拖拽设计前后端程序的业务逻辑,提供了变量声明、变量赋值、判断、循环、遍历数组元素、遍历对象属性、数据库增删改查、数据统计、执行SQL、Excel导入导出、附件上传下载、文件读写、函数调用、服务调用、请求第三方API等几十种逻辑元素和操作,支持层层嵌套,支持拖拽更改元素位置,支持图形化界面设置详细参数,支持启用或禁用逻辑元素,可以实现不写一行代码就能设置好程序的业务逻辑,对于一般的业务系统来说,这些已经足够用了。

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2141925/
1
上一篇顽强的河流:神十五飞行任务发布会
下一篇 走青山的孩子:喀麦隆门将奥纳纳退出世界杯

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部