原标题:常用SQL优化与IDEA超实用技巧分享

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时,我们都需要注意数据操作的性能。

同时,给大家介绍两个Intellij IDEA超级实用的开发技巧。

一、SQL优化

1.1 核心

1、不在数据库做运算

cpu计算务必移至业务层

2、控制单表数据量

int型不超过1000w,含char则不超过500w;合理分表;限制单库表数量在300以内;

3、控制列数量字段少而精,字段数建议在20以内;

4、平衡范式与冗余效率优先;往往牺牲范式;

5、拒绝3B

拒绝大sql语句:big sql

拒绝大事务:big transaction

拒绝大批量:big batch

1.2 字段类

6、字符转化为数字

用int而不是char(15)存储ip

7、避免使用NULL字段

NULL字段很难查询优化;

NULL字段的索引需要额外空间;

NULL字段的复合索引无效;

badcase:

'name'char(32)defaultnull

'age'intnotnull

goodcase:

'age'intnotnulldefault0

8、少用text/blob

varchar的性能会比text高很多;实在避免不了blob,请拆表;

9、不在数据库里存图片

1.3 索引类

10、谨慎合理使用索引

改善查询、减慢更新;索引一定不是越多越好(能不加就不加,要加的一定得加);覆盖记录条数过多不适合建索引,例如“性别”;

11、字符字段必须建前缀索引

12、不在索引做列运算

badcase:

select idwhereage +1 = 10;

13、innodb主键推荐使用自增列;

主键建立聚簇索引;主键不应该被修改;字符串不应该做主键;如果不指定主键,innodb会使用唯一且非空值索引代替;

14、不用外键

请由程序保证约束;

1.4 sql类

15、sql语句尽可能简单

一条sql只能在一个cpu运算;大语句拆小语句,减少锁时间;一条大sql可以堵死整个库;

16、简单的事务

事务时间尽可能短;

17、避免使用trig/func

触发器、函数不用;客户端程序取而代之;

18、不用select *

消耗cpu,io,内存,带宽;这种程序不具有扩展性;

19、OR改写为IN()

or的效率是n级别;

in的消息时log(n)级别;

in的个数建议控制在200以内;

select id from twherephone=’159′ or phone=’136′;

=>

select id from twherephonein(’159′, ’136′);

20、OR改写为UNION

mysql的索引合并很弱智

selectidfrom t where phone = ’159′ or name = ‘john’;

=>

selectidfrom t where phone=’159′

union

selectidfrom t where name=’jonh’

21、避免负向%

22、慎用count(*)

23、limit高效分页

limit越大,效率越低

select id from tlimit10000, 10;

=>

select id from twhereid > 10000limit10;

24、使用union all替代union

union有去重开销

25、少用连接join

26、少用group by

分组;自动排序;

27、请使用同类型比较

28、使用load data导数据

load data比insert快约20倍;

二、IDEA超级实用开发技巧

2.1 多个页面分栏展示:

不知道大家有没有遇到和我一样的问题,如下图所示ide一下子打开很多页面,很多文件还能折叠了。每次都找的要吐血!!!!

以下是解决办法,点击”window“----》”Editor Tabs”---》“Tabs Placement”把“Show Tabs in Single Row”的那个小勾勾去掉,这样就ok了。

2.2 Java类继承关系图

阅读源码是提升自己编码能力的必要手段。以Java为例,大家是不是被它复杂的继承结构搞晕了。没有明确的继承图,我们只能大致知道那些类继承了哪些类,这样对于我们理解Java体系结构是一个障碍。但是,intellij idea提供了一个很有用的功能,即可以看到类的继承关系,以SpringMVC里面最重要的DispatcherServlet为例,点击右键-----》Diagrams -----》Show Diagram,就出现了相应的继承结构图。这个对于我们学习Java源码很有帮助。

责任编辑:

idea 分栏_常用SQL优化与IDEA超实用技巧分享相关推荐

  1. MySQL 常用SQL优化

    MySQL 常用SQL优化 MySQL 常用SQL优化: 一.大批量插入数据: 1.对于load MyISAM存储引擎的表,可以通过关闭打开MyISAM表非唯一索引的更新来提升导入速度:   例:my ...

  2. mysql 常用sql调优_MySQL 常用SQL优化

    MySQL 常用SQL优化: 一.大批量插入数据: 1.对于load MyISAM存储引擎的表,可以通过关闭打开MyISAM表非唯一索引的更新来提升导入速度: 例:mysql > alter t ...

  3. mysql 优化_常用MySQL优化

    1.大批量插入数据优化 (1)对于MyISAM存储引擎的表,可以使用:DISABLE KEYS 和 ENABLE KEYS 用来打开或者关闭 MyISAM 表非唯一索引的更新. ALTER TABLE ...

  4. db2 日期加减一天_常用SQL系列之(八):列值累计、占比、平均值以及日期运算等...

    本系统为@牛旦教育IT课堂在微头条上发布的内容,为便于查阅,特辑录于此,都是常用SQL基本用法. 前两篇连接: (一):SQL点滴(查询篇):数据库基础查询案例实战 (二):SQL点滴(排序篇):数据 ...

  5. greenplum 查询出来的数字加减日期_常用SQL系列之(八):列值累计、占比、平均值以及日期运算等

    本系统为@牛旦教育IT课堂在微头条上发布的内容,为便于查阅,特辑录于此,都是常用SQL基本用法. 前两篇连接: (一):SQL点滴(查询篇):数据库基础查询案例实战 (二):SQL点滴(排序篇):数据 ...

  6. oracle批量更新数据从另一表_常用SQL系列之(五):多表和禁止插入、批量与特殊更新等...

    本系统为@牛旦教育IT课堂在微头条上的内容, 为便于查阅,特辑录于此,都是常用SQL基本用法.. 前两篇连接: (一):SQL点滴(查询篇):数据库基础查询案例实战 (二):SQL点滴(排序篇):数据 ...

  7. mysql 判断字段为null表示 false 其它为true_日拱一卒,MySQL数据库 常用SQL优化技巧 十一式...

    本文中所提到的SQL优化技巧均是基于Mysql 索引 BTree类型 .将从以下几个方面介绍常用的SQL优化技巧: 避免在 WHERE 子句中使用 != 或 <> 操作符. 避免在 WHE ...

  8. mongoose 批量修改字段_常用SQL系列之(五):多表和禁止插入、批量与特殊更新等...

    本系统为@牛旦教育IT课堂在微头条上的内容, 为便于查阅,特辑录于此,都是常用SQL基本用法.. 前两篇连接: (一):SQL点滴(查询篇):数据库基础查询案例实战 (二):SQL点滴(排序篇):数据 ...

  9. 手机wps取消不等宽分栏_如何取消分栏 - 卡饭网

    Word 2007中取消分栏的技巧 Word 2007中取消分栏的技巧 前面我们了解了在Word2007中分栏的设置,相信很多朋友已经学会了,而如果想要对网上下载的分栏文档中进行取消,该怎么办呢?下面 ...

最新文章

  1. ubuntu-基本命令篇-12-磁盘管理
  2. Android canvas.translate
  3. python 搜索二维矩阵
  4. 租房还是买房结婚?大数据告诉你年轻人的真实想法
  5. 分享Db4o的便捷封装类源码
  6. 基于Matlab的LDPC码性能研究毕业设计(含源文件)
  7. 路径规划之RRT类算法简述
  8. Flask中制作博客首页的分类功能(一)
  9. java_十进制数转换为二进制,八进制,十六进制数的算法
  10. 浪潮存储进逼国际一线厂商
  11. 代码雨代码源复制_两步教你打造一个代码雨动态壁纸效果,代码可以设置为名字...
  12. TI 库仑计高级篇之Chemistry 创建
  13. iTween插件使用
  14. 【数据分析】基于RFM模型的线上零售中的客户细分(二):RFM模型实战
  15. 公司app上架正规要求需要办理icp许可证
  16. 计算机视觉:图片的马赛克、毛玻璃效果和图片的融合
  17. Google Adsense西联快汇收款流程
  18. 市面上主流编辑器介绍(2021/05/20)
  19. 中国的电子商务新时代
  20. L0范式、L1范式、L2范式解释通俗版

热门文章

  1. python调用java方法_python调用Java方法传入HashMap ArrayList
  2. html 打开页面光标自动选中输入框_Python自动部署码云:
  3. java基础大概_Java基础知识(一)
  4. windows 系统 oracle监听无法启动。
  5. 计算机毕业设计源码分享双鱼林,计算机毕业课程设计论文源码-057双鱼林asp教务选课信息系统...
  6. c语言银行系统个人心得,c,,银行管理实验报告心得体会.docx
  7. 常见笔顺错误的字_最全汉字笔顺正确写法,建议家长为孩子收藏
  8. Spring之事件监听
  9. WebLogic在Linux环境下安装
  10. matlab mcc 安装,matlab中安装mcc