using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; namespace MyDemo.Web { /// <summary> /// EPList 支持为List创建索引 /// </summary> /// <typeparam name="T">类型</typeparam&…
建表的时候,不要用null赋默认值,如:字符串的设置'',数据类型的设为0,不要将null设为默认值. 在MySQL中没有 full [outer] join,用union代替 各种 JOIN SQL:https://mp.weixin.qq.com/s?__biz=MzU4OTI3NzY4OA==&mid=2247483746&idx=1&sn=94b1a14569ff12a4776e48ee8e431ec3 使用 explain 命令显示查询执行计划时,key_len只计算wh…
原文:MySQL性能优化(三):索引 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/81061053 一 索引原理 如果一本新华字典假如没有目录,想要查找某个字,就不得不从第一页开始查找,一直找到最后一页(如果要找的字在最后一页),这个过程非常耗时,这种场景相当于数据库中的全表扫描的概念,也就是循环表中的每一条记录看看该记录是否满足条件…
JavaScript性能优化篇js优化   随着Ajax越来越普遍,Ajax引用的规模越来越大,Javascript代码的性能越来越显得重要,我想这就是一个很典型的例子,上面那段代码因为会被频繁使用,所以才有了此优化的过程,我在本文中将指出一些重要的规则,介绍如何使用你的JavaScript.使用哪些工具以及你将从中得到什么好处. 确保代码尽量简洁 不要什么都依赖JavaScript.不要编写重复性的脚本.要把JavaScript当作糖果工具,只是起到美化作用.别给你的网站添加大量的JavaSc…
2. 垃圾收集器与内存分配策略 垃圾收集(Garbage Collection, GC)是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如Scala等)程序员在提升开发效率上获得了惊人的便利.理解GC,对于理解JVM和Java语言有着非常重要的作用.并且当我们需要排查各种内存溢出.内存泄漏问题时,当垃圾收集称为系统达到更高并发量的瓶颈时,只有深入理解GC和内存分配,才能对这些"自动化"的技术实施必要的监控和调节. GC主要需…
jQuery高级技巧——性能优化篇 阅读目录 通过CDN(Content Delivery Network)引入jQuery库 减少DOM操作 适当使用原生JS 选择器优化 缓存jQuery对象 定义一个可以复用的函数 用数组方式来遍历jQuery 对象集合 回到顶部 通过CDN(Content Delivery Network)引入jQuery库 要提升网站中javascript的性能的最简单的一步就是引入最新版本的jQuery库,新发布的版本通常在性能上会有更好的提升而且也修复了一下bug.…
转载自:http://www.cyqdata.com/qblog/article-detail-38993 文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL 4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍…
之前的文章<更高的压缩比,更好的性能–使用ORC文件格式优化Hive>中介绍了Hive的ORC文件格式,它不但有着很高的压缩比,节省存储和计算资源之外,还通过一个内置的轻量级索引,提升查询的性能.这个内置的轻量级索引,就是下面所说的Row Group Index. 其实ORC支持的索引不止这一种,还有一种BloomFilter索引,两者结合起来,更加提升了Hive中基于ORC的查询性能. 说明一下:本文使用Hive2.0.0 + hadoop-2.3.0-cdh5.0.0作为测试环境.表lxw…
查询优化的过程: 查询优化: 功能:分析语句后最终生成执行计划 分析:获取操作语句参数 索引选择 Join算法选择 创建测试的表: select * into EmployeeOp from AdventureWorks2014.HumanResources.Employee 建立非聚集索引: create nonclustered index nc_employee_vacationhours on employeeop(vacationhours) 执行语句: select LoginID,…
SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 下面举两个简单的例子: 图书馆的例子:一个图书馆那么多书,怎么管理呢?建立一个字母开头的目录,例如:a开头的书,在第一排,b开头的在第二排,这样在找什么书就好说了,这个就是一个聚集索引,可是很多人借书找某某…
JS性能优化 摘自:http://www.china125.com/design/js/3631.htm  首先,由于JS是一种解释型语言,执行速度要比编译型语言慢得多.(注:,Chrome是第一款内置优化引擎,将JS编译成本地代码的浏览器,其它浏览器也陆续实现了JS的编译过程.但是,即使到了编译执行JS的新阶段,仍然会存在低效率的代码.)以下总结一些可以改进代码的整体性能的方法.   1.注意作用域   记住一点,随着作用域中的作用域数量的增加,访问当前作用域以外的变量的时间也在增加.所以,访…
前言 今天我们来讲讲如何优化MySQL的性能,主要从索引方面优化.下期文章讲讲MySQL慢查询日志,我们是依据慢查询日志来判断哪条SQL语句有问题,然后在进行优化,敬请期待MySQL慢查询日志篇 建表 // 建表CREATE TABLE IF NOT EXISTS staffs(    id INT PRIMARY KEY AUTO_INCREMENT,    name VARCHAR(24) NOT NULL DEFAULT "" COMMENT'姓名',    age INT NO…
Task优化:    1.慢任务的性能优化:可以考虑减少每个Partition处理的数据量,同时建议开启spark.speculation(慢任务推导,当检测的慢任务时,会同步开启相同的新任务,谁先完成就认定该任务完成). 2.尽量减少Shuffle,例如我们要尽量减少groupByKey的操作,因为groupByKey会要求通过网络拷贝(Shuffle)所有的数据,优先考虑使用reduceByKey.因为reduceByKey会首先reduce locally.例如在进行join操作的时候,形…
很多App都会遇到以下几个常见的性能问题: 启动速度慢:界面跳转慢:事件响应慢:滑动和动画卡顿. 一.启动速度优化. 优化初始化任务: 1. 把一些初始化任务懒加载初始化 2. 把初始化任务并行化(异步化) 3. 使初始化任务可以插拔(一个任务出问题不会影响到其他的任务) 其他: 1. 控制线程数量,注意线程的使用,用自己的线程池替换三方或者二方SDK的线程池,线程太多占用cpu资源, 2. 使用缓存来减少I/O操作(读数据库,读文件,SharedPreference)减少网络请求(判断无网络直…
原文 http://www.cnblogs.com/BoyceYang/archive/2013/06/16/3139006.html 阅读导航 1. 概述 2. 什么是重复索引 3. 查找重复索引 4. 删除重复索引 5. 总结 1. 概述 很多人都知道索引在数据库上的是有利有弊的.像其他主流商业数据库一样SQL Server允许在一个列上重复创建索引.因为SQL Server没有限制创建重复索引的数量,只是限制数据库的一个表上最多可以创建999重复索引,所以这就增加了数据库中存在重复索引的可…
系统性能. 少用Metadata方法     与其它的JDBC方法相比, 由ResultSet对象生成的metadata对象的相对来说是很慢的. 应用程序应该缓存从ResultSet返回的metadata信息,避免多次不必要的执行这个操作. 几乎没有哪一个JDBC应用程序不用到metadata,虽然如此,你仍可以通过少用它们来改善系统性能. 要返回JDBC规范规定的结果集的所有列信息, 一个简单的metadata的方法调用可能会使JDBC驱动程序去执行很复杂的查询甚至多次查询去取得这些数据. 这…
因为我们大多数情况下使用的都是Innodb,所以这篇博客主要依据Innodb来讲 b+树(图片来自网络) b+树图来自网络 1.聚集索引与非聚集索引区别 聚集索引:叶子节点包含完整的数据(物理地址连续),叫做聚集索引 非聚集索引(又称辅助索引):它的叶子节点并不包含行记录的全部数据,叶子结点除了包含键值以外,每个叶子结点中的索引行还包含了一个书签,该书签用来告诉存储引擎可以在哪找到相应的数据行.需要引用主索引作为data域,其实原理就是直接通过辅助索引无法找到数据,需要通过辅助索引找到主键,然后…
sql及索引优化 如何通过慢查询日志发现有问题的sql? 查询次数多且每次查询占用时间长的sql通常为pt-query-digest分析的前几个查询 IO大的sql注意pt-query-digest分析中的rows examine项 未命中索引的sql注意pt-query-digest分析中rows examine 和 rows send的对比 磁盘IO与预读:磁盘读取数据靠的是机械运动,每次读取数据花费的时间可以分为寻道时间,旋转时间,传输时间三个部分.虽然平常理论上来说没什么压力, 但是数据…
1.造成tableView卡顿的原因有哪些? 1.最常用的就是cell的重用, 注册重用标识符 如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell 如果有很多数据的时候,就会堆积很多cell. 如果重用cell,为cell创建一个ID,每当需要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,如果没有再重新创建cell 2.避免cell的重新布局 cell的布局填充等操作 比较耗时,一般创建时就布局好 如可以将cell单独放到一个自定义类,初始化时就…
1.[基本优化] 将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完成页面渲染而不会造成页面堵塞问题,这个大家都懂. 2.[合并JS代码,尽可能少的使用script标签] 最常见的方式就是带代码写入一个js文件中,让页面只使用一次<script></script>标签来引入 3.[使用async和defer] 通过给script标签增加 defer属性或者是 async 属性来实现,async和defer不同之处是async加载完成…
数据库调优概述 数据库中的存储结构是怎样的 在数据库中,不论读一行,还是读多行,都是将这些行所在的页进行加载.也就是说,数据库管理存储空间的基本单位是页(Page). 一个页中可以存储多个行记录(Row),同时在数据库中,还存在着区(Extent).段(Segment)和表空间(Tablespace).行.页.区.段.表空间的关系如下图所示: 区(Extent)是比页大一级的存储结构,在InnoDB存储引擎中,一个区会分配64个连续的页.因为InnoDB中的页大小默认是16KB,所以一个区的大小…
  通过CDN(Content Delivery Network)引入jQuery库 要提升网站中javascript的性能的最简单的一步就是引入最新版本的jQuery库,新发布的版本通常在性能上会有更好的提升而且也修复了一下bug.或者通过CDN引入也是很好的选择,通过CDN引入能够减少网站的加载时间.以下是一些CDN服务: <!-- Case 1 - jQuery CDN --> <script src="http://code.jquery.com/jquery-1.10…
注意,本篇文章为负载均衡的理论篇,后续找个机会推出实战篇.理论篇主要讲述如何配置负载均衡,配置负载均衡不难.难的是真正的实战,比如如何做到多服务器之间的数据共享(session,file等),多cache服务器如何做到命中率高等等问题 上一篇文章中我们通过反向代理了后端一台服务器,但随着网站访问的人越来越多一台服务器实在是顶不住,于是我们加了多台服务器,那么多台服务器又怎么配置代理呢? upstream test.com{ # ip_hash; server 192.168.10.13:80;…
最近开发的软件中需要用到日志功能,其中有一个重要功能是显示日期和时间.于是网上搜了一把,搜到大量的日期格式化函数,不过比较了下,感觉代码都不够优雅,而且性能都不给力.对线上一些代码进行了评测,以下是一些结论和优化代码. 测试代码如下,在同以浏览器中,分别对格式化函数进行50万次计算: var start = new Date().getTime(); var date = new Date(); for(var i = 0;i<500000;i++){ date.format1('yyyy-MM…
     手机App耗电的主要来源有以下四个因素: CPU处理,Processing 网络,Networking 定位,Location 图像,Graphics 耗电优化最终目的:通过尽可能降低CPU.GPU功耗来降低手机电量消耗. 尽可能少用定时器: 优化I/O操作(所谓的I/O操作也就是文件操作,我们简称为I/O操作.怎么优化呢?尽量不要频繁写入小数据,最好批量一次性写入.读写大量主要的数据时,考虑用dispatch_io,其提供了基于GCD的异步操作文件I/O的API.用dispatch_…
首先程序的优化,不只是沿着一个点进行,往往都是程序配合服务器及数据服务器配置提升性能. 第一步:数据库链接优化 在数据库链接字符串中添加“Max Pool Size=32767;”,32767是数据库的最大链接数,也可以设置0个代表最大. 可以解决的错误: 1.超时时间已到.超时时间已到,但是尚未从池中获取连接.出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小. Timeout expired.  The timeout period elapsed prior to obtain…
下面介绍一种JS代码优化的一个小技巧,通过动态加载引入js外部文件来提高网页加载速度 [基本优化] 将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完成页面渲染而不会造成页面堵塞问题,这个大家都懂的.   [合并JS代码,尽可能少的使用script标签] 最常见的方式就是带代码写入一个js文件中,让页面只使用一次<script></script>标签来引入   [无堵塞加载JS] 通过给script标签增加 defer属性或者是 a…
为什么要使用反向代理 具体请参考这篇博文:[Linux常识篇(1)]所谓的正向代理与反向代理 在虚拟机上配置反向代理的步骤 首先假设你已经假设好了LNMP架构了,这时我们还要安装Apache和php,为什么还要再装一次PHP?因为Apache默认是把PHP作为本身的一个模块(mod_php)来运行的,与Nginx的运行方式不同. step1: 安装与配置Apache与php 我们的目的是在localhost:88上配置web1和web2的站点 安装 yum -y install httpd ht…
1. 普通青年的索引使用方式 假设我们有一个用户表 tb_user,内容如下: name age sex jack 22 男 rose 21 女 tom 20 男 ... ... ... 执行SQL语句: ; 默认情况下,MySQL需要遍历整张表,才能找到符合条件的记录.如果在age字段上建立索引,那么MySQL可以很快找到所有符合条件的记录(索引本身通过B+树实现,查起来很快.简单起见,想象一下二分查找和遍历查找的区别.) 2. 文艺青年的玩法 2.1 用冗余的联合索引加速查询 接着上面的例子…
https://www.cnblogs.com/chenwolong/p/7531955.html 1.合理使用AsNoTracking 若对查询的数据不需要做任何修改,则可采用AsNoTracking:但若在查询过程中做了select映射之类的操作,则不需要添加. 2.合理使用AsNonUnicode var a = context.Student.Where(A => A.StuName=="赵刚").ToList(); var b = context.Student.Whe…