【SysBench】OLTP 基准测试示例

news2024/11/19 4:21:05

前言

本文采用 MySQL 沙盒实例作为测试目标,使用 sysbench-1.20 对其做 OLTP 基准测试。

有关 MySQL 沙盒的更多信息,请参阅 玩转 MySQL Shell 沙盒实例,【MySQL Shell】6.8 AdminAPI MySQL 沙盒 。


1、部署一个 MySQL 沙盒实例

使用 mysqlsh 部署一个 MySQL 沙盒实例用于测试 OLTP 。

 MySQL  JS > dba.deploySandboxInstance(3310);
A new MySQL sandbox instance will be created on this host in 
/root/mysql-sandboxes/3310

Warning: Sandbox instances are only suitable for deploying and 
running on your local machine for testing purposes and are not 
accessible from external networks.

Please enter a MySQL root password for the new instance: ********

Deploying new MySQL instance...

Instance localhost:3310 successfully deployed and started.
Use shell.connect('root@localhost:3310') to connect to the instance.

2、创建 sysbench oltp 测试的基础配置文件

为什么要使用配置文件?方便快捷啊!配置文件可以简化操作,省着在命令行中指定这些参数时至少还要多打 -- 和空格。如果一些参数可以复用,建议创建一个配置文件。

$ cat mysql-sb.cnf 
threads=2
time=600

db-driver=mysql
mysql-host=localhost
mysql-port=3310
mysql-socket=/root/mysql-sandboxes/3310/sandboxdata/mysqld.sock
mysql-user=root
mysql-password=Ro123ot$
mysql-db=sbtest

在创建时读者可能遇到一个问题,在配置文件中指定诸如 tables 选项时不生效,并且会报 Unknown argument type: 0 。而在命令行中指定时则有效。原因是什么呢?

因为这个参数是 Lua 脚本的参数,而不是 sysbench 这个二进制可执行文件的参数!

所以应该在命令行中使用诸如 --tables=N 这样的 Lua 脚本参数来测试。

3、准备测试数据

笔者准备了 100 个包含 10000 行数据的测试表,库名和表名都是用默认值。

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_common prepare

注意此阶段的屏幕打印信息,多线程时可能出现争用,导致部分表未创建成功,或写入的数据不全。

sbtest6 创建失败报错:
在这里插入图片描述

计划创建 100 张表,实际只创建了 53 个,上面的 sbtest6 表虽然最后创建成功了,但插入的数据不全。

在这里插入图片描述

在这里插入图片描述

4、运行测试

1) oltp_read_write

建议先对支持 prewarm 选项的 Lua 脚本使用 prewarm 选项,以预热数据到内存,提高性能。

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_read_write.lua prewarm

因输出过长,以下仅截取部分信息。

预热后:

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_read_write.lua run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

SQL statistics:
    queries performed:
        read:                            2272046
        write:                           530149
        other:                           443585
        total:                           3245780
    transactions:                        162289 (270.47 per sec.)
    queries:                             3245780 (5409.35 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.0289s
    total number of events:              162289

Latency (ms):
         min:                                    4.40
         avg:                                    7.39
         max:                                  427.68
         95th percentile:                       10.09
         sum:                              1199185.78

Threads fairness:
    events (avg/stddev):           81144.5000/31.50
    execution time (avg/stddev):   599.5929/0.00

未预热,同时使用周期报告来每 5 秒生成一次报告信息:

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_read_write run --report-interval=5
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Report intermediate results every 5 second(s)
Initializing random number generator from current time


Initializing worker threads...

Threads started!

[ 5s ] thds: 2 tps: 137.01 qps: 2747.56 (r/w/o: 1923.71/549.43/274.42) lat (ms,95%): 23.52 err/s: 0.00 reconn/s: 0.00
[ 10s ] thds: 2 tps: 199.67 qps: 3993.69 (r/w/o: 2795.44/798.90/399.35) lat (ms,95%): 14.73 err/s: 0.00 reconn/s: 0.00
[ 15s ] thds: 2 tps: 204.00 qps: 4080.05 (r/w/o: 2856.03/816.01/408.00) lat (ms,95%): 12.52 err/s: 0.00 reconn/s: 0.00
...
[ 590s ] thds: 2 tps: 285.00 qps: 5698.37 (r/w/o: 3989.18/1139.19/570.00) lat (ms,95%): 9.06 err/s: 0.00 reconn/s: 0.00
[ 595s ] thds: 2 tps: 285.80 qps: 5714.78 (r/w/o: 3999.39/1144.00/571.40) lat (ms,95%): 9.06 err/s: 0.00 reconn/s: 0.00
[ 600s ] thds: 2 tps: 281.97 qps: 5641.39 (r/w/o: 3949.97/1127.28/564.14) lat (ms,95%): 9.22 err/s: 0.00 reconn/s: 0.00
SQL statistics:
    queries performed:
        read:                            2126824
        write:                           607664
        other:                           303832
        total:                           3038320
    transactions:                        151916 (253.18 per sec.)
    queries:                             3038320 (5063.66 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.0218s
    total number of events:              151916

Latency (ms):
         min:                                    4.70
         avg:                                    7.89
         max:                                 1579.23
         95th percentile:                        9.91
         sum:                              1199355.27

Threads fairness:
    events (avg/stddev):           75958.0000/101.00
    execution time (avg/stddev):   599.6776/0.00

2) oltp_point_select.lua

注意,.lua 后缀加不加都行。

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_point_select.lua run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Report intermediate results every 5 second(s)
Initializing random number generator from current time


Initializing worker threads...

Threads started!
[ 5s ] thds: 2 tps: 13309.18 qps: 13309.18 (r/w/o: 13309.18/0.00/0.00) lat (ms,95%): 0.21 err/s: 0.00 reconn/s: 0.00
[ 10s ] thds: 2 tps: 12990.77 qps: 12990.77 (r/w/o: 12990.77/0.00/0.00) lat (ms,95%): 0.22 err/s: 0.00 reconn/s: 0.00
[ 15s ] thds: 2 tps: 13777.54 qps: 13777.54 (r/w/o: 13777.54/0.00/0.00) lat (ms,95%): 0.20 err/s: 0.00 reconn/s: 0.00
...
[ 590s ] thds: 2 tps: 13479.94 qps: 13479.94 (r/w/o: 13479.94/0.00/0.00) lat (ms,95%): 0.20 err/s: 0.00 reconn/s: 0.00
[ 595s ] thds: 2 tps: 13402.69 qps: 13402.69 (r/w/o: 13402.69/0.00/0.00) lat (ms,95%): 0.20 err/s: 0.00 reconn/s: 0.00
[ 600s ] thds: 2 tps: 13573.04 qps: 13573.04 (r/w/o: 13573.04/0.00/0.00) lat (ms,95%): 0.20 err/s: 0.00 reconn/s: 0.00
SQL statistics:
    queries performed:
        read:                            8165259
        write:                           0
        other:                           0
        total:                           8165259
    transactions:                        8165259 (13608.60 per sec.)
    queries:                             8165259 (13608.60 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.0052s
    total number of events:              8165259

Latency (ms):
         min:                                    0.12
         avg:                                    0.15
         max:                                   48.51
         95th percentile:                        0.20
         sum:                              1189126.95

Threads fairness:
    events (avg/stddev):           4082629.5000/4029.50
    execution time (avg/stddev):   594.5635/0.01

3) oltp_write_only.lua

上面设置的 report-interval 每 5 秒报告一次太频繁了,笔者目的是为了演示 sysbench 的用法,因而选择后面不再报告了。

此外,这个测试我在命令行增加了开启直方图的参数 --histogram=on ,来看一下效果吧!

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_write_only.lua run --histogram=on
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

Latency histogram (values are in milliseconds)
       value  ------------- distribution ------------- count
       1.759 |                                         1
       1.824 |                                         1
       1.857 |                                         5
       1.891 |                                         11
       1.925 |                                         22
       1.960 |                                         69
       1.996 |                                         149
       2.032 |                                         201
       2.069 |*                                        335
       2.106 |*                                        557
       2.145 |**                                       947
       2.184 |***                                      1327
       2.223 |****                                     1896
       2.264 |*****                                    2608
       2.305 |*******                                  3578
       2.347 |**********                               4687
       2.389 |*************                            6072
       2.433 |****************                         7844
       2.477 |********************                     9856
       2.522 |************************                 11344
       2.568 |**************************               12441
       2.615 |*****************************            13762
       2.662 |*******************************          15034
       2.710 |**********************************       16514
       2.760 |*************************************    17735
       2.810 |**************************************** 19185
       2.861 |**************************************** 19258
       2.913 |***************************************  18997
       2.966 |**************************************   18409
       3.020 |***********************************      17069
       3.075 |*********************************        15689
       3.130 |*******************************          14864
       3.187 |****************************             13647
       3.245 |**************************               12369
       3.304 |***********************                  11086
       3.364 |********************                     9858
       3.425 |******************                       8680
       3.488 |****************                         7786
       3.551 |**************                           6774
       3.615 |************                             5633
       3.681 |**********                               4828
       3.748 |********                                 3991
       3.816 |*******                                  3428
       3.885 |******                                   2853
       3.956 |*****                                    2360
       4.028 |****                                     1948
       4.101 |***                                      1648
       4.176 |***                                      1346
       4.252 |**                                       1082
       4.329 |**                                       1005
       4.407 |**                                       796
       4.487 |*                                        679
       4.569 |*                                        629
       4.652 |*                                        548
       4.737 |*                                        473
       4.823 |*                                        498
       4.910 |*                                        453
       4.999 |*                                        462
       5.090 |*                                        456
       5.183 |*                                        448
       5.277 |*                                        458
       5.373 |*                                        499
       5.470 |*                                        478
       5.570 |*                                        517
       5.671 |*                                        481
       5.774 |*                                        544
       5.879 |*                                        561
       5.986 |*                                        546
       6.095 |*                                        568
       6.205 |*                                        549
       6.318 |*                                        570
       6.433 |*                                        529
       6.550 |*                                        575
       6.669 |*                                        496
       6.790 |*                                        463
       6.913 |*                                        451
       7.039 |*                                        418
       7.167 |*                                        407
       7.297 |*                                        355
       7.430 |*                                        353
       7.565 |*                                        308
       7.702 |*                                        266
       7.842 |*                                        259
 
SQL statistics:
    queries performed:
        read:                            0
        write:                           1480184
        other:                           740092
        total:                           2220276
    transactions:                        370046 (616.73 per sec.)
    queries:                             2220276 (3700.37 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.0123s
    total number of events:              370046

Latency (ms):
         min:                                    1.76
         avg:                                    3.24
         max:                                 1266.80
         95th percentile:                        4.41
         sum:                              1198670.01

Threads fairness:
    events (avg/stddev):           185023.0000/8.00
    execution time (avg/stddev):   599.3350/0.00

输出信息也太长了,以上仅截取重要的直方图部分。

4) oltp_delete.lua

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_delete.lua run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

SQL statistics:
    queries performed:
        read:                            0
        write:                           312795
        other:                           3073107
        total:                           3385902
    transactions:                        3385902 (5643.06 per sec.)
    queries:                             3385902 (5643.06 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.0094s
    total number of events:              3385902

Latency (ms):
         min:                                    0.11
         avg:                                    0.35
         max:                                  774.49
         95th percentile:                        1.58
         sum:                              1194234.55

Threads fairness:
    events (avg/stddev):           1692951.0000/195.00
    execution time (avg/stddev):   597.1173/0.01

5) oltp_insert.lua

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_insert.lua run --histogram=on
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

Latency histogram (values are in milliseconds)
       value  ------------- distribution ------------- count
       0.872 |                                         1
       0.888 |                                         3
       0.904 |                                         7
       0.920 |                                         12
       0.937 |                                         43
       0.954 |                                         73
       0.971 |                                         186
       0.989 |                                         359
       1.007 |*                                        548
       1.025 |*                                        640
       1.044 |*                                        829
       1.063 |*                                        1277
       1.082 |***                                      2289
       1.102 |****                                     3604
       1.122 |******                                   4984
       1.142 |*******                                  6073
       1.163 |*********                                7463
       1.184 |**********                               8819
       1.205 |***********                              9559
       1.227 |*************                            10751
       1.250 |***************                          12863
       1.272 |*******************                      15982
       1.295 |**********************                   19122
       1.319 |*************************                21523
       1.343 |**************************               22617
       1.367 |*****************************            24922
       1.392 |**********************************       29320
       1.417 |**************************************   32289
       1.443 |**************************************   32792
       1.469 |***************************************  33521
       1.496 |**************************************** 34324
       1.523 |**************************************   32975
       1.551 |***************************************  33122
       1.579 |**************************************   32907
       1.608 |*************************************    31956
       1.637 |************************************     30909
       1.667 |**********************************       29239
       1.697 |********************************         27315
       1.728 |*****************************            25275
       1.759 |**************************               22348
       1.791 |**********************                   18824
       1.824 |*******************                      16152
       1.857 |*****************                        14749
       1.891 |***************                          13044
       1.925 |*************                            10862
       1.960 |***********                              9120
       1.996 |*********                                7758
       2.032 |********                                 6459
       2.069 |******                                   5426
       2.106 |*****                                    4678
       2.145 |*****                                    4135
       2.184 |****                                     3500
       2.223 |****                                     3054
       2.264 |***                                      2768
       2.305 |***                                      2319
       2.347 |**                                       2034
       2.389 |**                                       1773
       2.433 |**                                       1516
       2.477 |**                                       1301
       2.522 |*                                        1070
       2.568 |*                                        954
       2.615 |*                                        755
       2.662 |*                                        675
       2.710 |*                                        631
       2.760 |*                                        492
       2.810 |*                                        451
       2.861 |      
SQL statistics:
    queries performed:
        read:                            0
        write:                           744453
        other:                           0
        total:                           744453
    transactions:                        744453 (1240.74 per sec.)
    queries:                             744453 (1240.74 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.0049s
    total number of events:              744453

Latency (ms):
         min:                                    0.87
         avg:                                    1.61
         max:                                  926.39
         95th percentile:                        2.11
         sum:                              1196638.09

Threads fairness:
    events (avg/stddev):           372226.5000/3.50
    execution time (avg/stddev):   598.3190/0.01

6) oltp_read_only.lua

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_read_only.lua  run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

SQL statistics:
    queries performed:
        read:                            7425740
        write:                           0
        other:                           1060820
        total:                           8486560
    transactions:                        530410 (883.99 per sec.)
    queries:                             8486560 (14143.89 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.0137s
    total number of events:              530410

Latency (ms):
         min:                                    1.97
         avg:                                    2.26
         max:                                   54.63
         95th percentile:                        3.07
         sum:                              1198568.01

Threads fairness:
    events (avg/stddev):           265205.0000/33.00
    execution time (avg/stddev):   599.2840/0.00

7) oltp_update_index.lua

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_update_index.lua run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

SQL statistics:
    queries performed:
        read:                            0
        write:                           145095
        other:                           4800953
        total:                           4946048
    transactions:                        4946048 (8243.33 per sec.)
    queries:                             4946048 (8243.33 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.0030s
    total number of events:              4946048

Latency (ms):
         min:                                    0.12
         avg:                                    0.24
         max:                                  259.25
         95th percentile:                        0.42
         sum:                              1192593.66

Threads fairness:
    events (avg/stddev):           2473024.0000/862.00
    execution time (avg/stddev):   596.2968/0.08

8) oltp_update_non_index.lua

$ sysbench --config-file=mysql-sb.cnf --tables=100 oltp_update_non_index.lua run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

SQL statistics:
    queries performed:
        read:                            0
        write:                           141508
        other:                           4686830
        total:                           4828338
    transactions:                        4828338 (8047.17 per sec.)
    queries:                             4828338 (8047.17 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.0022s
    total number of events:              4828338

Latency (ms):
         min:                                    0.12
         avg:                                    0.25
         max:                                  382.28
         95th percentile:                        0.44
         sum:                              1192434.24

Threads fairness:
    events (avg/stddev):           2414169.0000/3780.00
    execution time (avg/stddev):   596.2171/0.04

9) select_random_points.lua


10) select_random_ranges.lua


11) bulk_insert.lua

此测试与前面那些测试有些不同,它只会创建与线程数相同的个数的表,并且没有 talbes 参数。因此我们需要修改执行命令,先清理 sbtest1sbtest2 表的数据,然后再 prepare ,最后再 run

$ sysbench --config-file=mysql-sb.cnf bulk_insert.lua cleanup
$ sysbench --config-file=mysql-sb.cnf bulk_insert.lua prepare
$ sysbench --config-file=mysql-sb.cnf --tables=100 bulk_insert.lua run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

SQL statistics:
    queries performed:
        read:                            0
        write:                           2075
        other:                           0
        total:                           2075
    transactions:                        56561449 (94080.36 per sec.)
    queries:                             2075   (3.45 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          600.9490s
    total number of events:              56561449

Latency (ms):
         min:                                    0.00
         avg:                                    0.02
         max:                                 2011.20
         95th percentile:                        0.00
         sum:                              1182530.43

Threads fairness:
    events (avg/stddev):           28280724.5000/13106.50
    execution time (avg/stddev):   591.2652/0.25

MySQL 数据库内的执行结果如下:

 MySQL  localhost:3310 ssl  sbtest  SQL > select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
| 28293831 |
+----------+
1 row in set (1.7266 sec)

 MySQL  localhost:3310 ssl  sbtest  SQL > select count(*) from sbtest2;
+----------+
| count(*) |
+----------+
| 28267618 |
+----------+
1 row in set (1.8061 sec)

我们可以修改 times 参数为一个较小的值,因为没有必要批量插入 10 分钟的数据。

$ sysbench --config-file=mysql-sb.cnf bulk_insert.lua prepare --time=60
$ sysbench --config-file=mysql-sb.cnf bulk_insert.lua run --time=60
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

SQL statistics:
    queries performed:
        read:                            0
        write:                           190
        other:                           0
        total:                           190
    transactions:                        5722434 (94526.75 per sec.)
    queries:                             190    (3.14 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          60.5316s
    total number of events:              5722434

Latency (ms):
         min:                                    0.00
         avg:                                    0.02
         max:                                 1102.79
         95th percentile:                        0.00
         sum:                               118906.30

Threads fairness:
    events (avg/stddev):           2861217.0000/0.00
    execution time (avg/stddev):   59.4532/0.19

可以看到再命令行最后指定的 --times=60 覆盖了配置文件中指定的 time=600

 MySQL  localhost:3310 ssl  sbtest  SQL > select 'sbtest1' table_name,count(*) from sbtest1 union all
                                       -> select 'sbtest1' table_name,count(*) from sbtest2;
+------------+----------+
| table_name | count(*) |
+------------+----------+
| sbtest1    |  2861217 |
| sbtest1    |  2861217 |
+------------+----------+
2 rows in set (0.4175 sec)

5、清理数据

$ sysbench --config-file=mysql-sb.cnf oltp_common.lua --tables=100 cleanup

在这里插入图片描述

6、销毁 MySQL 沙盒实例

mysqlsh 终端中执行:

 MySQL  localhost:3310 ssl  sbtest  JS > dba.stopSandboxInstance(3310)
The MySQL sandbox instance on this host in 
3310 will be stopped

Please enter the MySQL root password for the instance 'localhost:3310': ********
The active session is established to the sandbox being stopped so it's going to be closed.

Stopping MySQL instance...

Instance localhost:3310 successfully stopped.

 MySQL  JS > dba.deleteSandboxInstance(3310);

Deleting MySQL instance...

Instance localhost:3310 successfully deleted.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1540211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ESP32S3 Sense接入百度在线语音识别】

视频地址: 1. 前言 使用Seeed XIAO ESP32S3 Sense开发板接入百度智能云实现在线语音识别。自带麦克风模块用做语音输入,通过串口发送字符“1”来控制数据的采集和上传。 步骤概括    (1) 在百度云控制端选择“语音识别”并创建应用获取API Key和Secr…

MapReduce学习问题记录

1、如何跳过对某行数据的处理 第一行数据是字段名不需要处理,我们知道第一行偏移量是0(行记录的时候是从数组首地址开始,到了行标识符进行一次计数,这个计数就是行偏移量,从0开始),我们根据偏移…

银行5G短消息应用架构设计

(一)RCS简介 1.1 RCS的提出与标准制定 RCS(Rich Communication Services & Suite,富媒体通信)是GSMA(Groupe Speciale Mobile Association,全球移动通信系统协会)在2008年提出的一种通讯方式,RCS融合了语音、消息…

【算法每日一练]-图论(保姆级教程篇16 树的重心 树的直径)#树的直径 #会议 #医院设置

目录 树的直径 题目:树的直径 (两种解法) 做法一: 做法二: 树的重心: 题目: 会议 思路: 题目:医院设置 思路: 树的直径 定义:树中距离最…

android.os.TransactionTooLargeException解决方案,Kotlin

android.os.TransactionTooLargeException解决方案,Kotlin 首先,特意制造一个让Android发生TransactionTooLargeException的场景,一个Activity启动另外一个Activity,在Intent的Bundle里面塞入一个大的ArrayList: import android.…

阿里云OSS存储的视频如何加水印

OSS是不能进行视频添加水印的,可以图片添加水印。 您可以在视频点播中进行配置: https://help.aliyun.com/zh/vod/user-guide/video-watermarks?spma2c4g.11186623.0.i2 原来的业务代码都是使用python 对oss的 视频进行上传 的,上传的视频路径已经保存到…

设计数据库之外部模式:数据库的应用

Chapter5:设计数据库之外部模式:数据库的应用 笔记来源:《漫画数据库》—科学出版社 设计数据库的步骤: 概念模式 概念模式(conceptual schema)是指将现实世界模型化的阶段进而,是确定数据库理论结构的阶段。 概念模…

系统架构设计-构建系统应用

1. 系统架构目标与设计原则 在设计系统架构时,我们的目标是确保系统具有以下特点: 可靠性:系统能够持续稳定运行,保证业务可用性。可伸缩性:系统能够根据负载变化自动扩展或收缩,以应对不同的流量需求。容…

【Java高级】利用反射机制获取类的所有信息

文章目录 1.相关准备2.导航图3. 相关的方法----------------------------------------------类------------------------------------------------------1 类的修饰符2 类名 -----------------------------------------------属性--------------------------------------------…

FileZilla 链接服务器提示 20 秒连接超时

FileZilla 有个默认设置是如果 20 秒没有数据的话会自动中断链接。 Command: Pass: **************** Error: Connection timed out after 20 seconds of inactivity Error: Could not connect to server修改配置 这个配置是可以修改的,修改的步骤为: …

保研复习概率论1

1.什么是随机试验(random trial)? 如果一个试验满足试验可以在相同的条件下重复进行、试验所有可能结果明确可知(或者是可知这个范围)、每一次试验前会出现哪个结果事先并不确定,那么试验称为随机试验。 …

零基础机器学习(4)之线性回归的基本原理

文章目录 一、线性回归的基本原理1.相关与回归2.线性回归的原理分析①线性回归的一般公式②线性回归的损失函数③线性回归方程的参数求解方法A.最小二乘法B.梯度下降法 一、线性回归的基本原理 1.相关与回归 相关描述的是变量之间的一种关系。 从统计角度看,变量之…

数据可视化-ECharts Html项目实战(5)

在之前的文章中,我们学习了如何设置滚动图例,工具箱设置和插入图片。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢 数据可视化-ECharts…

OpenLayers基础教程——WebGLPoints中要素样式的设置方法解析

1、前言 前一篇博客介绍了如何在OpenLayers中使用WebGLPoints加载海量数据点的方法,这篇博客就来介绍一下WebGLPoints图层的样式设置问题。 2、样式运算符 在VectorLayer图层中,我们只需要创建一个ol.style.Style对象即可,WebGLPoints则不…

【QT+QGIS跨平台编译】之九十:【QGIS_Crashhandler+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、QGIS_Crashhandler介绍二、QGIS下载三、文件分析四、pro文件五、编译实践一、QGIS_Crashhandler介绍 QGIS_Crashhandler模块是QGIS中的一个重要组成部分,它提供了QGIS程序的错误崩溃处理与跟踪。 二、QGIS下载 QGIS网址: QGIS Source Download 获取最新版本的…

iOS UIFont-新增第三方字体

背景 在项目中添加三方字体,是在开发中比较常见的需求,每次新增字体,都会遗忘其中某个步骤,又要去百度一下才能把字体添加使用成功。每次这样有点浪费时间和打击自信,于是便想着,自己好好来理一理新增字体…

ubuntu arm qt 读取execl xls表格数据

一,ubuntu linux pc编译读取xls的库 1,安装libxls(读取xls文件 电脑版) 确保你已经安装了基本的编译工具,如gcc和make。如果没有安装,可以使用以下命令安装: sudo apt-update sudo apt-get install build-essentia…

康奋威科技邀您到场参观2024长三角快递物流展

参展企业介绍 杭州康奋威科技股份有限公司创立于2005年,由国家“万人计划”专家任天挺先生创立并担任法人,是一家专业从事智能装备研发与制造的国家级高新技术企业。专注于自动化控制、机械设计、信息化方面的技术研究,主要为太阳能光伏、智…

深入理解Redis的Sentinel机制

Sentinel简述 Sentinel为了解决什么问题? Sentinel(哨岗、哨兵)是Redis的高可用性(high availability)解决方案。 我们知道Redis 的主从复制模式可以将主节点的数据改变同步给从节点,这样从节点就可以起…

C/C++之内存旋律:星辰大海的指挥家

个人主页:日刷百题 系列专栏:〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 🌎欢迎各位→点赞👍收藏⭐️留言📝 ​ ​ 一、C/C内存分布 我们先来了解一下C/C内存分配的几个区域,以下面的代码为例来看…