首页 > 其他分享 >YCSB工具原理重点内容解读(二)

YCSB工具原理重点内容解读(二)

时间:2023-03-25 12:22:34浏览次数:38  
标签:jdbc YCSB TEXT db 默认 解读 原理 默认值

一、建表

(1)默认表名为usertable

CREATE TABLE usertable (
    YCSB_KEY VARCHAR(255) PRIMARY KEY,
    FIELD0 TEXT, FIELD1 TEXT,
    FIELD2 TEXT, FIELD3 TEXT,
    FIELD4 TEXT, FIELD5 TEXT,
    FIELD6 TEXT, FIELD7 TEXT,
    FIELD8 TEXT, FIELD9 TEXT,
FIELD10 VARCHAR(100) #YCSB的默认字段长度是100
);

关键要点:

  1. 主键字段需要命名为YCSB_KEY
  2. 其他字段需要以FIELD作为前缀,并从1开始计数
  3. 添加与您在YCSB核心属性中指定的相同数量的字段,默认为10。
  4. 字段的类型并不那么重要,只要它们可以接受你在YCSB核心属性中指定的长度的字符串,默认值是100;
  5. prepare测试时会优先判断是否存在usertable表,存在则执行truncate清空表数据,若不存在则新建usertable表;

(2)如果自己另起了表名,如student,则运行时增加 -p table=student即可,此时运行脚本就会读取student的表

./bin/ycsb load jdbc -s -P workloads/workloadd  -cp /syw_test/ycsb-0.17.0/jdbc-binding/lib/mysql-connector-java-5.1.46.jar
-p recordcount=1000 -p threads=5 -p operationcount=1000 -p table=usertable2

二、JDBC连接的重要默认值

#直接从源码中可查内容
private static final String TABLE_NAME = "USERTABLE";
private static final int FIELD_LENGTH = 32;
private static final String FIELD_PREFIX = "FIELD";
private static final String KEY_PREFIX = "user";
private static final String KEY_FIELD = "YCSB_KEY";
private static final int NUM_FIELDS = 3;

三、配置参数(db.properties)

若是MySQL,则从jdbc-binding--->conf--->则可看到配置文件

db.driver=com.mysql.jdbc.Driver                # The JDBC driver class to use.
db.url=jdbc:mysql://127.0.0.1:3306/ycsb        # The Database connection URL.
db.user=admin                                # User name for the connection.
db.passwd=admin                                # Password for the connection.
db.batchsize=1000             # The batch size for doing batched inserts. Defaults to 0. Set to >0 to use batching.
jdbc.fetchsize=10                            # The JDBC fetch size hinted to the driver.
jdbc.autocommit=true                        # The JDBC connection auto-commit property for the driver.
jdbc.batchupdateapi=false     # Use addBatch()/executeBatch() JDBC methods instead of executeUpdate() for writes (default: false)
db.batchsize=1000             # The number of rows to be batched before commit (or executeBatch() when jdbc.batchupdateapi=true)

四、workload支持的配置参数详解

Fieldcount:记录中字段的数量(默认值:10)
Fieldlength:每个字段的大小(默认:100)
Minfieldlength:每个字段的最小大小(默认值:1)
Readallfields:应该读取所有字段(true)或只读取一个字段(false)(默认值:true)
Writeallfields:应该更新和读取/修改/写入更新所有字段(true)或只是一个(false)(默认:false)
Readproportion:应该读取的操作的比例(默认:0.95)
Updateproportion:操作的更新比例(默认值:0.05)
Insertproportion:应该插入的操作的比例(默认:0)
Scanproportion:应该扫描的操作的比例(默认值:0)
Readmodifywriteproportion:读取记录、修改记录、写回记录的操作比例(默认:0)
Requestdistribution:应该使用什么分布来选择要操作的记录-uniform(均匀分布), zipfian, hotspot, sequential, exponential or latest(数据越新访问概率越高)(默认:uniform)
Minscanlength:扫描的最小范围(默认值:1)
Maxscanlength:扫描的最大范围(默认:1000)
Scanlengthdistribution:对于扫描,应该使用什么分布来选择要扫描的记录数量,对于每次扫描,在1和maxscanlength之间(默认:uniform)
insertstart:用于并行加载和运行,为这个YCSB实例定义起始记录(默认值:0)
insertcount:对于并行加载和运行,定义这个YCSB实例的记录数量(默认:recordcount)
零填充:用于生成与字符串排序顺序兼容的记录序列,以0填充记录号。控制用于填充的0的数量。(默认值:1)
例如,对于第5行,如果zeropadding=1,则得到' user5 '键,如果zeropading=8,则得到' user00000005 '键。为了看到它的影响,零加法需要大于记录数中的位数。
Insertorder:记录是按键顺序插入(" ordered "),还是按散列顺序插入(" hashed ")(默认值:hashed)
Fieldnameprefix:字段名的前缀,较短的可能会减少所需的存储大小(默认:" field ")
core_workload_insertion_retry_limit:插入失败重试次数,默认 0
core_workload_insertion_retry_interval:重试间隔(秒),默认 3

 

标签:jdbc,YCSB,TEXT,db,默认,解读,原理,默认值
From: https://www.cnblogs.com/syw20170419/p/17254326.html

相关文章

  • 什么是Mysql和Mysql原理、Mysql主从复制、SQL语句
    ✍什么是MysqlMysql是关系数据库管理系统,一般中小型网站的开发都选择MySQL作为网站数据库搭配PHP和Apache可组成良好的开发环境.✍关系型数据库和非关系数据库1、关系数......
  • MongoDB官方性能测试报告:YCSB测试下的并发量提升
    1.前言MongoDB3.0的主要侧重点是提高性能,尤其是写性能和对硬件资源的利用率。为了展示我们在3.0中取得的成果和如何来应用这些新的改善,我们接下来将发布一系列博客来比较......
  • 读从瀑布到敏捷一 漫画解读软件开发模式变迁史
    软件开发模式有瀑布模型、敏捷开发、看板、SCRUM和精益软件开发,除了瀑布模型,其他模型有着不可分割的关系。所谓瀑布模型,就是说,软件开发是按照一定顺序展开的(传统线性生产......
  • 浅谈计算机组成原理(一)
    最近在学计算机组成原理,觉得光听课有点空,就回过头来写写博客,记录一下学习所得。第一次写博客,若有错误,请各位多多包涵。 计算机的基本组成遵守冯诺依曼体系......
  • 组合数学课程笔记(四):容斥原理
    \[一切繁复都洗涤,却染上重叠的星\]容斥原理是容斥原理的基本公式。但是我们并不经常的使用这个公式本身,我们一般使用这个公式的推论:具体的理解这个式子,就是在全集\(......
  • 神策数据:车企数字化营销四大趋势解读
    面对存量市场的激烈竞争,各大车企纷纷在营销策略上进行了诸多调整。一方面,过去两年多车企线下业务的正常开展受限,因此线上数字化体验的发展成为车企关注的重点,即借助数字化营......
  • Exp3-免杀原理
    一、基础问题回答1、杀软是如何检测出恶意代码的?答:(1)检测特征码人有自己的特征,代码也有自己的特征。杀毒软件都有着一套特征库,依靠检索程序代码是否和库中特征码是否吻......
  • golang pprof 监控系列(1) —— go trace 统计原理与使用
    golangpprof监控系列(1)——gotrace统计原理与使用服务监控系列文章服务监控系列视频关于gotooltrace的使用,网上有相当多的资料,但拿我之前初学golang的经验来......
  • session和cookie的作用原理和区别
    session和cookie的作用原理和区别session和cookie简述session一、session的概念及特点二、为什么要使用session三、session的工作原理四、session与cookies区别五......
  • Vue2响应式原理
    Vue.js基本上遵循MVVM(Model–View–ViewModel)架构模式,数据模型仅仅是普通的JavaScript对象。而当你修改它们时,视图会进行更新。本文讲解一下Vue响应式系统的底层细......