10G的变态SQL文件,如何快速打开编辑?
工作中,偶尔需要编辑一些大文件,比如 log 文件,后者一些变态的 SQL,此时用平常的编辑器就会显得力不从心,要么直接打不开,要么打开后卡得要死。
本文就给大家推荐几款可以操作大文件的编辑器,准备好小板凳,开始吧。
本机配置:Windows10,16G 内存,i5 处理器。
Notepad++
第一站,就拿我本机的记事本替代者 Notepad++ 开刀。
网上传闻 Notepad++ 打开大文件不佳,Notepad++ 可以打开 600M 左右的文件,大于 700M 就直接无法打开了,一般 >400m 就会卡死。
那么它的真实体验如何呢?
于是就从服务器上,找来了一个 2.3G 大小的文件来进行测试。

将其拖到 Notepad++ 中,直接不行:

那我们拿一个小点的,200M 多点的文件再试一下
结果呢?

大家隔着屏幕,应该无法感受我在电脑前的感受
打开用了好几秒,打开后无法滚动,我的鼠标都快滑烂了

好不容易能上下拉了,没拉几下,还卡死了!
直接程序无响应了!
Notepad++ 是很优秀,但是在打开大文件方面,简直是一塌糊涂!
超过 100M 的文件,用 Notepad++ 打开时,请慎重!
Sublime Text
下面我们用很多人都喜欢的 Sublime Text 来试下。
首先,比 Notepad++ 好的地方是,2.3G 的文件起码是能打开的
没有报错

但是,Sublime Text 开始加载文件了

我大概计了个时
加载 2.3G 的文件,一共用了 4 分多钟
我就一直盯着加载页面
不过总算加载完了
正当我准备滑动我的鼠标查看文件时


再看一眼 Sublime Text 的内存占用情况

看得出来,它是一次性将文件全加载到内存中了
所以,Sublime Text 也是很优秀,但是打开大文件,同样一塌糊涂。
VSCode
编辑器界的新秀 VSCode 在大文件方面又能表现如何呢?
当我把文件拖入到 VSCode 时,弹出了如下提示

按照提示进行重启后,再次尝试打开文件

就一直处于加载中
加载一段时间后,又弹出了这个页面

后又多次尝试打开,均以失败告终

所以,VSCode 打开大文件,失败!
UltraEdit
现在再来试一下老牌的 UltraEdit,网上说它是可以打开大文件的,那我们就看下到底表现如何。

打开有了几十秒的时间,并且打开过程中卡死
但是打开后,文件浏览起来还是很顺滑的。
直接进行编辑好像也没什么问题
但是当我使用 ctrl+z 进行撤销操作,或者进行文件保存时
还是卡住了

我们发现,其实 UltraEdit 内存占用很小,这种情况下,仍然能够顺滑浏览大文件,难道是因为我的 SSD?
总之,UltraEdit 要比 Notepad++ 和 Sublime Text 表现要好多了。

EmEditor
好了,做了这么多铺垫,到了主角出现的时候了,它就是:EmEditor
EmEditor 是一个比较小众的编辑器,当年实习时,只有当年实习时看到指导老师用过,此后多年,没再看到过它的身影。
知乎上甚至还有一个问题:为什么用 EmEditor 的人不多?
回答者对其的评价颇高,有人甚至称其为:Windows平台下最棒的文本编辑工具!没有之一!




评价都是『幸存者偏差』,我们不过多关注,到底怎样,拉出来溜溜

1、加载大文件,没有出现卡死的情况;
2、浏览文件,同样顺滑;
3、编辑大文件,不费力气;
4、保存时,出现短暂卡死的情况;

总之,这是今天所有测试下来,大文件打开表现最优秀的一个。
总结
本文并没有比较各个编辑器的意图,所以对于各个编辑器的优劣不做评价。
本文只是实验在大文件编辑的情况下,到底谁的表现更为突出。
综合结论:EmEditor ≈ UltraEdit > Sublime Text ,VSCode 和 Notepad++ 无法打开大文件,不参与排名。
另外,也许还有其他更为优秀的工具,比如 Vim 其实也可以用来编辑大文件,小编认知有限,大家可以留言推荐。
10G的变态SQL文件,如何快速打开编辑?的更多相关文章
- MySQL(Navicat)运行.sql文件时报错:[Err] 2006 - MySQL server has gone away 的解决方法
背景: 今天导入一个数据量很大的.sql文件时,报错: 原因: 可能是sql语句过长,超过mysql通信缓存区最大长度. 解决:1. 编辑 MySQL 安装目录下的 my.ini,在最后添加以下内容: ...
- 针对大的sql文件删除行操作
今天处理开发已导出的库的一个sql文件.未gzip压缩 ,1.3G 需要删除 17 18 24行的SET行. 想到了两个办法 1 sed 方法 主意 由于 sed 虽然指定行 进行 替换, 也会读完 ...
- mysql导入.sql文件
1. source /home/susie ...../**.sql 2. \. /home/susie/.../**.sql 批量导入.sql文件 首先新建一个main.sql,然后在main.sq ...
- navicat如何导入sql文件和导出sql文件
http://jingyan.baidu.com/article/a65957f4976aad24e67f9b9b.html ************************************* ...
- 怎么将oracle的sql文件转换成mysql的sql文件
怎么将sql文件导入PowerDesigner中的方法(将oracle的sql文件转换成mysql的sql文件)呢? 怎么将xx.sql文件的数据库结构导入powerdesigner 的方法呢? 现讲 ...
- navicat导入sql文件
Hello,大家好.Navicat是我们平时使用较多的一个数据库客户端工具,平时小天我主要是用来连接mysql的,使用的时候还是很方便的. 今天小天我就给大家分享一个Navicat如何导入导出sql文 ...
- 【转】linux下使用sqlplus执行包含语句块的sql文件,运行时会不断显示行号,而在plsqldev中能执行
一.数据库:Oracle数据库 二.sql文件内容: --创建函数 CREATE OR REPLACE function fun_createuid1 return varchar2 is Resul ...
- 大型SQL文件导入mysql方案
一. 场景 现有俩个体积较大的单表sql文件,一个为8G,一个为4G,要在一天内完整导入到阿里云的mysql中,需要同时蛮子时间和空间这俩种要求. 二. 思路 搜索了网上一堆的方案,总结了如下几个: ...
- linux crontab定时任务运行shell脚本(shell执行sql文件)
https://www.cnblogs.com/tiankongjava/p/6106743.html 今天做个linux定时任务(每晚12点把表汇总). 顺便写个博客记录一下~~ 为什么用linux ...
随机推荐
- I/O:Writer
Writer: Writer append(char c) :将指定字符添加到此 writer. Writer append(CharSequence csq) :将指定字符序列添加到此 writer ...
- 【转】Spring事务详解
1.事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交,那在没有Spring帮我们管理事务 ...
- Tomcat(Windows)
百度云:链接:http://pan.baidu.com/s/1pKYrf79 密码:56t0 官网下载网址:http://archive.apache.org/dist/tomcat/tomca ...
- Servlet和JSP知识总结
1.Servlet接口有哪些方法及Servlet生命周期 Servlet接口定义了5个方法,前三个方法与Servlet生命周期有关: void init() void service() void d ...
- php上传excle文件,csv文件解析为二维数组
解析上传的CSV文件不是什么难事,直接读取转成你想要的数组样子就OK了. public function putStoreStockIn ($filePath = '') { $file = fope ...
- Java简单公式计算器
最近给公司开发业务代码时,碰到一个场景,简单描述是这样的: 客户要向咱们公司定制一件产品,这个产品呢,有很多属性,那公司得根据这些属性报价呀,怎么报价呢?公司针对某种类型的产品有一个基准价,在同类产品 ...
- 【杂谈】如何对Redis进行原子操作
什么时候需要进行需要原子操作? 很常见的例子,就是利用Redis实现分布式锁. 实现锁需要哪些条件? 我们知道要实现锁,就需要一个改变锁状态的方法.这个方法能原子地对锁的状态进行检查并修改.如果修改成 ...
- Java类什么情况下被初始化?
1.创建类的实例(new 的方式).访问某个类或接口的静态变量,或者对该静态变量赋值,调用类的静态方法 2.反射的方式 3.当初始化一个类的时候,如果发现其父类还没有进行初始化,则需先触发其父类的初始 ...
- Codeforces Round #554 (Div. 2) C. Neko does Maths (数论 GCD(a,b) = GCD(a,b-a))
传送门 •题意 给出两个正整数 a,b: 求解 k ,使得 LCM(a+k,b+k) 最小,如果有多个 k 使得 LCM() 最小,输出最小的k: •思路 时隔很久,又重新做这个题 温故果然可以知新❤ ...
- js里的Document对象介绍
activeElement 返回代表文档中dangqianhuodejiaodianyuansudeduixaing body 返回代表文档中body元素 ...