test

MySQL InnoDB表的碎片量化和整理(data free能否用来衡量碎片?)

冷暖自知 提交于 2020-03-22 02:54:07
网络上有很多MySQL表碎片整理的问题,大多数是通过demo一个表然后参考data free来进行碎片整理,这种方式对myisam引擎或者其他引擎可能有效(本人没有做详细的测试). 对Innodb引擎是不是准确的,或者data free是不是可以参考,还是值得商榷的。 本文基于MySQL的Innodb存储引擎,数据库版本是8.0.18,对碎片(fragment)做一个简单的分析,来说明如何量化表的碎片化程度。 涉及的参数 1,information_schema_stats_expiry information_schema是一个基于共享表空间的虚拟数据库,存储的是一些系统元数据信息,某些系统表的数据并不是实时更新的,具体更新是基于参数information_schema_stats_expiry。 information_schema_stats_expiry默认值是86400秒,也就是24小时,意味着24小时刷新一次information_schema中的数据,做测试的时候可以设置为0,实时刷新information_schema中的元数据信息。 2,innodb_fast_shutdown 因为要基于磁盘做一些统计,需要将缓存或者redo log中的数据在重启实例的时候实时刷入磁盘,这里设置为0,在重启数据库的时候将缓存或者redo log实时写入表的物理文件。 3

java单元测试(使用junit)

放肆的年华 提交于 2020-03-21 23:38:29
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用。 1、概述   Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。   Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用Junit进行自动测试了。   由于Junit相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的 test first design的实现有了现成的手段:用Junit写测试代码,写实现代码,运行测试,测试失败,修改实现代码,再运行测试,直到测试成功。以后对代码的修改和优化,运行测试成功,则修改成功。   Java 下的 team 开发,采用 cvs(版本控制) + ant(项目管理) + junit(集成测试) 的模式时,通过对ant的配置,可以很简单地实现测试自动化。   对不同性质的被测对象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧,以后慢慢地分别讲叙。以下以Class测试为例讲解,除非特殊说明。 2、下载安装 去Junit主页下载最新版本3.8.1程序包junit

Linux+Apache+Tomcat集群配置

痞子三分冷 提交于 2020-03-21 23:09:37
参考: http://blog.csdn.net/bluishglc/article/details/6867358# http://andashu.blog.51cto.com/8673810/1381369 所搭配环境为centos6.4 本文是采用的mod_jk的方式搭建的集群环境。 一、安装apache 首先安装apache,编译完成后,通过IP:端口访问就行,如果返回“it workers”证明Apache启动成功(注意apache的工程路径要正确) 1.进入下载好的httpd-2.2.25.tar.gz文件所在目录,执行解压操作: tar -zxvf httpd-2.2.25.tar.gz 2.进入解压出的文件夹根目录: cd httpd-2.2.25 3.进行编译参数配置: ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all 关于configure参数的更多内容可参考: http://httpd.apache.org/docs/2.2/en/programs/configure.html#installationdirectories 4.编译安装: make make install 5.启动和关闭apache 完成上述步骤后,apache的安装就结束了

mapstruct最佳实践

杀马特。学长 韩版系。学妹 提交于 2020-03-21 22:17:45
本文原文链接地址:http://nullpointer.pw/mapstruct%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.html 前言 按照日常开发习惯,对于不同领域层使用不同JavaBean对象传输数据,避免相互影响,因此基于数据库实体对象User衍生出比如UserDto、UserVo等对象,于是在不同层之间进行数据传输时,不可避免地需要将这些对象进行互相转换操作。 常见的转换方式有: 调用getter/setter方法进行属性赋值 调用BeanUtil.copyPropertie进行反射属性赋值 第一种方式不必说,属性多了就需要写一大坨getter/setter代码。第二种方式比第一种方式要简便很多,但是坑巨多,比如sources与target写反,难以定位某个字段在哪里进行的赋值,同时因为用到反射,导致性能也不佳。 鉴于此,今天写一写第三种对象转换方式,本文使用的是 MapStruct 工具进行转换,MapStruct 原理也很简单,就是在代码编译阶段生成对应的赋值代码,底层原理还是调用getter/setter方法,但是这是由工具替我们完成,MapStruct在不影响性能的情况下,解决了前面两种方式弊端,很赞~ 准备工作 为了讲解 MapStruct 工具的使用,本文使用常见的 User 类以及对应 UserDto 对象来演示。 @Data

Kubernetes集群实践(07)使用ECK Operator部署Elastic

末鹿安然 提交于 2020-03-21 22:13:26
题外话:当初为什么坚持使用k8s来实现现有业务,有个很强的推动就是原有的虚拟方式部署Elastic集群已经不能适应业务规模的扩展,在虚拟机上架设大规模的Elastic集群已经是噩梦般的存在。因此,下决心采用容器的方式进行部署。容器的方式进行部署,不但实现了快速部署,同时采用k8s进行编排,简化了elastic集群的运维。当然,架设完k8s集群后,就部署Elastic集群(有状态集合)是增加了难度,涉及服务器暴露,持久话存储,单还是可以一步步的解决的。 相关简介 Kubernetes Operator Operator 是由 CoreOS 开发的,用来扩展 Kubernetes API,特定的应用程序控制器,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系统。Operator 基于 Kubernetes 的资源和控制器概念之上构建,但同时又包含了应用程序特定的领域知识。创建Operator 的关键是CRD(自定义资源)的设计。 Kubernetes 1.7 版本以来就引入了自定义控制器的概念,该功能可以让开发人员扩展添加新功能,更新现有的功能,并且可以自动执行一些管理任务,这些自定义的控制器就像 Kubernetes 原生的组件一样,Operator 直接使用 Kubernetes API进行开发,也就是说他们可以根据这些控制器内部编写的自定义规则来监控集群、更改

达梦普通表转成分区表

六眼飞鱼酱① 提交于 2020-03-21 22:01:09
1.创建测试表: SQL> create table test (id int,name varchar(20)); SQL> begin for i in 1..10000 loop insert into test values (i,'aa'||i); commit; end loop; end; / 2.导出数据: [dmdba@localhost ~]$ dexp sysdba/SYSDBA file=/dm7/test.dmp tables=test 3.删除非分区表: SQL> drop table test; 4.创建分区表: create table test ( id int, name varchar(20) ) partition by range (id)( partition p1 values less than (200), partition p2 values less than (400), partition p3 values less than (600), partition p4 values less than (maxvalue) ) ; 5.导入数据: [dmdba@localhost ~]$ dimp sysdba/SYSDBA file=/dm7/test.dmp tables=test ignore=y 来源: 51CTO

23.MySQL的备份与恢复

浪子不回头ぞ 提交于 2020-03-21 17:30:38
23.1 备份单个数据库练习多种参数使用 mysql 数据库自带了一个很好用的备份命令,就是 mysqldump ,它的基本使用如下: 语法: mysqldump – u <用户名> - p <数据库名> 备份的文件名​ 范例一: 23.2 查看数据库 oldboy 的内容 mysql> use oldboy; Database changed mysql> show tables; +------------------+ | Tables_in_oldboy | +------------------+ | test | +------------------+ 1 row in set (0.00 sec) mysql> select * from test; +----+------+-----------+-------------+ | id | age | name | shouji | +----+------+-----------+-------------+ | 1 | NULL | oldgirl | NULL | | 2 | NULL | 老男孩 | NULL | | 3 | NULL | etiantian | NULL | | 4 | 24 | zhangxuan | 13511111111 | | 5 | 22 | huangyan |

TestComplete资源列表

两盒软妹~` 提交于 2020-03-21 17:05:07
TestComplete官方网站 : http://www.automatedqa.com/ TestComplete试用版下载地址 : http://www.automatedqa.com/downloads/testcomplete/ TestComplete7.2 企业版: http://d.download.csdn.net/sort/tag/testcomplete720 破解文件: http://files.cnblogs.com/testware/AutomatedQA.TestComplete.Keymaker.rar CSDN网站上的TestComplete资源下载 : http://search.download.csdn.net/search/TestComplete TestComplete讨论群: 118287985(已满) 51145049 TestComplete 论坛、视频、FAQ、文章、How-To、博客 : http://www.automatedqa.com/support/ http://www.sqaforums.com/postlist.php?Cat=0&Board=UBB43 http://tv.falafel.com/TestComplete.aspx http://blog.csdn.net/Testing_is

[Unit Testing] AngularJS Unit Testing - Karma

南楼画角 提交于 2020-03-21 16:56:04
Install Karam : npm install -g karma npm install -g karma-cli Init Karam : karma init First test : 1. Add test file to the karma.conf.js: // list of files / patterns to load in the browser files: [ 'test/hello.js' ], 2. Add test file: describe('First Unit testing with Karma', function() { it('sholud work', function() { expect(true).toBe(false); }) }) Of course, it will failed. Then we make it pass: describe('First Unit testing with Karma', function() { it('sholud work', function() { expect(true).toBe(true); }) }) Testing with AngularJS Install angular-mocks : npm install angular-mocks Include

unittest详解(一) unittest初识

為{幸葍}努か 提交于 2020-03-21 15:43:53
unittest是python内置的一个单元测试框架,在学习怎么使用它之前,我们先来了解它的一些概念和原理。 Test Case: 测试用例,一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。单元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。 Test Suite: 测试套件,就是多个测试用例集合在一起 Test Runner: 测试执行,用来执行测试用例,其中的run(test)会执行TestSuite/TestCase Test Fixture: 对一个测试用例环境的搭建和销毁,是一个fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。这个有什么用呢?比如说在这个测试用例中需要访问数据库,那么可以在setUp()中建立数据库连接以及进行一些初始化,在tearDown()中清除在数据库中产生的数据,然后关闭连接。注意tearDown的过程很重要,要为以后的TestCase留下一个干净的环境。 了解了概念后,我们来看一个登陆的测试脚本。 代码: # coding = utf-8 import unittest import