2022年8月

1、在所建项目的根目录下初始化包配置管理文件

npm init -y

2、在根目录下执行

npm i @vant/weapp -S --production

3、在微信IDE的 工具-->选中构建npm,如下图

wwwc.png

4、配合vant官网上“快速上手”一起使用

https://vant-contrib.gitee.io/vant-weapp/#/quickstart

目前我用phpspeadsheet导出excel文件,是存为文件然后再respon的。 有没有方法直接输出而不用输出实体文件?
$writer = new Xlsx($spreadsheet);
$response = response();
ob_start();
$writer->save('php://output');
$c = ob_get_contents();
ob_flush();
flush();
$response->withHeaders([
    'Content-Type' => 'application/vnd.ms-excel',
    'Content-Disposition' => 'attachment;filename="xxx.xlsx"',
    'Cache-Control' => 'max-age=0',
])->withBody($c);
return $response;

转自:https://www.workerman.net/q/9070

1、 更新十分频繁的字段上不宜建立索引:因为更新操作会变更B+树,重建索引。这个过程是十分消耗数据库性能的。
2、 区分度不大的字段上不宜建立索引:类似于性别这种区分度不大的字段,建立索引的意义不大。因为不能有效过滤数据,性能和全表扫描相当。另外返回数据的比例在30%以外的情况下,优化器不会选择使用索引。
3、 业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。虽然唯一索引会影响insert速度,但是对于查询的速度提升是非常明显的。另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,在并发的情况下,依然有脏数据产生。
4、 多表关联时,要保证关联字段上一定有索引。
5、 创建索引时避免以下错误观念:索引越多越好,认为一个查询就需要建一个索引;宁缺勿滥,认为索引会消耗空间、严重拖慢更新和新增速度;抵制唯一索引,认为业务的唯一性一律需要在应用层通过“先查后插”方式解决;过早优化,在不了解系统的情况下就开始优化。

截取转载:https://zhuanlan.zhihu.com/p/61687047

MYSQL 能支持多少连接?

MYSQL的TCP连接支持长连接,所以每次操作完数据库,可以不必直接关掉连接,而是等待下次使用的时候在复用这个连接。所有的Socket长连接都是通过TCP自带的ping来维持心跳(TCP保活),从而保持连接状态。

长连接的好处很多,自然大家都用长连接。慢慢就搞出一套长连接维护的工具 - 数据库连接池。

MYSQL 的最大连接数在5.7 - 8.x 版本中默认是151, 最大可以达到16384(2^14)。如何设置最大连接数在于你的服务器性能,查看 MYSQL连接数信息命令:
show variables like 'max_connections';

查询当前数据库已建立连接数:
show status like 'Threads_connected';

连接池设置多少连接才合适?

设置连接池的大小肯定不是越大越好,需要考虑的是当前服务所在机器的性能,网络状况,数据库机器性能,数据库特性等等。

PostgreSQL提供了一个设置预期线程池大小的公式:
connections = ((core_count * 2) + effective_spindle_count)
其中,core_count是CPU核心, effective_spindle_count 的含义是有效主轴数,如果你的服务器使用的是带有16个磁盘的RAID,那么valid_spindle_count=16。它实质上是服务器可以管理多少个并行I / O请求的度量。

5ae27afb9341438580d7264dce9646f7_tplv-obj_1062_500.png

这里的标签div可换成任意html标签

<div class="layui-badge layui-bg-blue" data-title="团购信息" data-area="90%,85%" ew-event="open" data-type="2" data-content="http://www.baidu.com.com">团体</div>

/**
     * 获取两个日期之间的所有日期
     * @param string $startDate 2022-08-08
     * @param string $endDate 2022-08-08
     * @return array
     */
    function get_between_date($startDate = null, $endDate = null): array
    {
        $dates = [];
        $startTime = strtotime($startDate);
        $endTime = strtotime($endDate);
        if ($startTime > $endTime) {
            //如果开始日期大于结束日期,直接return 防止下面的循环出现死循环
            return $dates;
        } elseif ($startTime == $endTime) {
            //开始日期与结束日期是同一天时
            $dates[] = $startDate;
            return $dates;
        } else {
            $dates[] = date('Y-m-d', $startTime);
            while ($startTime < $endTime) {
                $startTime = strtotime('+1 day', $startTime);
                $dates[] = date('Y-m-d', $startTime);
            }
            return $dates;
        }
    }

<?php
echo date('Y-m-d H:i:s',strtotime('now'));//当前时间戳 2017-01-09 21:04:11
echo date('Y-m-d H:i:s',strtotime('+1second'));//当前时间戳+1秒 2017-01-09 21:04:12
echo date('Y-m-d H:i:s',strtotime('+1minute'));//当前时间戳+1分 2017-01-09 21:05:11
echo date('Y-m-d H:i:s',strtotime('+1hour'));//当前时间戳+1小时 2017-01-09 22:04:11
echo date('Y-m-d H:i:s',strtotime('+1day'));//当前时间戳+1天 2017-01-10 21:04:11
echo date('Y-m-d H:i:s',strtotime('+1week'));//当前时间戳+1周 2017-01-16 21:04:11
echo date('Y-m-d H:i:s',strtotime('+1month'));//当前时间戳+1月 2017-02-09 21:04:11
echo date('Y-m-d H:i:s',strtotime('+1year'));//当前时间戳+1年 2018-01-09 21:04:11
echo date('Y-m-d H:i:s',strtotime('+12year 12month 12day 12hour 12minute 12second'));//当前时间戳+12年,12月,12天,12小时,12分,12秒 2030-01-22 09:16:23
$t=1483967416;//指定时间戳
echo $dt=date('Y-m-d H:i:s',$t);//2017-01-09 21:10:16
/*方法一*/
echo date('Y-m-d H:i:s',$t+1*24*60*60);//指定时间戳+1天 2017-01-10 21:10:16
echo date('Y-m-d H:i:s',$t+365*24*60*60);//指定时间戳+1年 2018-01-09 21:10:16
/*方法二*/
//$dt是指定时间戳格式化后的日期
echo date('Y-m-d H:i:s',strtotime("$dt+1day"));//指定时间戳+1天 2017-01-10 21:10:16
echo date('Y-m-d H:i:s',strtotime("$dt+1year"));//指定时间戳+1年 2018-01-09 21:10:16
/*方法三*/
//$t是指定时间戳
echo date('Y-m-d H:i:s',strtotime("+1day",$t));//指定时间戳+1天 2017-01-10 21:10:16
echo date('Y-m-d H:i:s',strtotime("+1year",$t));//指定时间戳+1年 2018-01-09 21:10:16
//指定时间戳加1月、1周、1小时、1分、1秒原理同上;