作业:
1.用sysbench压测MySQL,通过orzdba监控工具分析机器的容量,容量指标如下:LOAD/CPU/TPS/QPS。
下载上传sysbench-0.5.zip
解压sysbench-0.5.zip
安装依赖包
执行./autogen.sh
执行configure
[root@localhost sysbench-0.5]# ./configure --with-mysql-includes=/u01/svr/mysql5.6/include --with-mysql-
libs=/u01/svr/mysql5.6/lib
make && make install
执行prepar
[root@localhost sysbench-0.5]# /apps/svr/sysbench-0.5/sysbench/sysbench --test=/apps/svr/sysbench-0.5/sysbench/tests/db/select.lua --oltp-table-size=20000 --mysql-table-engine=innodb --mysql-user=root --mysql-password= --mysql-port=3306 --mysql-host=127.0.0.1 --mysql-db=test --max-=0 --max-time=60 --oltp-tables-count=20 --report-interval=10 --num_threads=2 prepare
执行run
/apps/svr/sysbench-0.5/sysbench/sysbench --test=/apps/svr/sysbench-0.5/sysbench/tests/db/select.lua --oltp-table-size=20000 --mysql-table-engine=innodb --mysql-user=root --mysql-password= --mysql-port=3306 --mysql-host=127.0.0.1 --mysql-db=test --maxrequests=0 --max-time=60 --oltp-tables-count=20 --report-interval=10 --num_threads=2 run
开启orzdba监控
2.在订单表中(分库分表),有70%查询是通过主键和userId字段查询(userId是分库分表策略字段),
有20%要通过order_num(订单号)查数据,请问order_num(订单号)要怎么设计才能快带找到订单记录是在哪个库的哪个表?
有10%是非主键字段(比如:字段、渠道、商品,档期,品牌,收件人信息、金额等字段)去查记录,非主键字段要怎么设计才能快带定位到记录?
order_num设计思路:userId直接定位到库和表,order_num不能直接定位到库和表,如果通过order_num能查询到userId,问题解决。
解决方案:
1)建立一个索引表记录order_num->userId的映射关系
2)用order_num来访问时,先通过索引表查询到userId,再定位相应的库
非主键字段可建立联合索引查询。
网友评论