php按指定概率获得key

简介

php按指定概率获得key

<?php
function getkey()
{
    $pro = [
        'key1' =>80, //80%出现概率
        'key2' =>20, //20%出现概率
    ];

    $ret = '';
    $sum = array_sum($pro);
    foreach($pro as $k=>$v)
    {
        $r = mt_rand(1, $sum);
        if($r <= $v)
        {
            $ret = $k;
            break;
        }else{
            $sum = max(0, $sum - $v);
        }
    }
    return $ret;
}

echo getkey();

mysql测试数据批量插入

简介

  • 场景1:测试sql服务器性能时需要单表100万以上数据时
  • 场景2:业务测试数据1000个账号每个账号有5个商品
    当我们遇到以上场景时,如何快速造数据?

原理

  • 利用select的交叉连接(cross join)。如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积;
  • 需要预先准备好表和样本数据
    Continue reading

多个组织用户git commit时如何区分邮箱提交

简介

作为一个码农通常会拥有github,公司的gitlab/gerrit或个人搭建的gitlab等两个及两个账号。公司提交代码时,通常是用公司的邮箱和用户名提交代码。而像github这种我们又希望用个人邮箱和昵称来提交。当然你可以为每个项目单独本地配置user.emailuser.name信息。但组织的git仓库越来越多时,这种方式就显得繁琐多了。下面主要就是讲解如何为一个组织全局配置一个单独的用户信息。

环境

  • git (version >= 2.13.0)

ps. 2.13.0版本起支持includeIf
Continue reading