docker run -itd --name docker-mysql8.0 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qwer1234 mysql --lower_case_table_names=1
docker run -itd --name docker-mysql5.7 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=qwer1234 bingozhou/mysql5.7 --lower_case_table_names=1
学习日志 LIUGUOFENG
docker run -itd --name docker-mysql8.0 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qwer1234 mysql --lower_case_table_names=1
docker run -itd --name docker-mysql5.7 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=qwer1234 bingozhou/mysql5.7 --lower_case_table_names=1
MySQL 优化分页查询
以 t_sys_log 表为例,3774851条数据,占用空间1.01G,24个字段
SELECT * FROM `t_sys_log` order by create_time desc limit 100000,10
耗时 88.345秒
SELECT id FROM `t_sys_log` order by create_time desc limit 100000,10
耗时 0.336秒
所以联表查询
SELECT * FROM `t_sys_log` t1 JOIN
(SELECT id FROM `t_sys_log` order by create_time desc limit 100000,10) t2
ON t1.id = t2.id
耗时 0.453秒
偏移量更大一点
SELECT * FROM `t_sys_log` order by create_time desc limit 1000000,10
耗时 12.687秒
SELECT * FROM `t_sys_log` t1 JOIN
(SELECT id FROM `t_sys_log` order by create_time desc limit 1000000,10) t2
ON t1.id = t2.id
耗时 0.617秒
MySQL的排序时间 create_time 字段需不需要添加索引
以 t_sys_log 表为例,3774851条数据,占用空间1.01G,24个字段
SELECT * FROM `t_sys_log` order by create_time desc limit 10000,10
create_time
不加索引 耗时 8.051 秒
加索引 耗时 0.468 秒
结论,需要加索引
export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
export const awaitTime = async (cb, ms) => {
const start = new Date().getTime();
const res = await cb();
const end = new Date().getTime();
if (end - start < ms) {
await new Promise((resolve) => {
setTimeout(resolve, ms - (end - start));
});
}
return res;
};
如果你只是想快速地在文件末尾添加一些数据来改变hash值,并且不介意文件变得不可播放(或者你知道如何移除添加的数据以恢复文件的可播放性),你可以使用简单的shell命令。但请注意,这样做通常会使视频播放器无法识别或播放文件。
下面是一个简单的shell脚本示例,它会在当前目录下的所有视频文件末尾追加一个字符串,从而改变它们的hash值:
#!/bin/bash
APPEND_DATA="This is some extra data to change the hash."
# 遍历当前目录下的所有视频文件
for file in *.{mp4,mov,avi,mkv}; do
if [ -f "$file" ]; then
# 检查文件是否真的是视频文件(可选)
# file "$file" | grep -q 'video'
# if [ $? -eq 0 ]; then
# 在视频文件末尾追加数据
echo "$APPEND_DATA" >> "$file"
echo "Appended data to $file"
# fi
fi
done
重要提示:这个脚本会破坏视频文件,使它们无法被正常播放。如果你只是想测试hash值的变化,并且不关心文件的可播放性,那么可以运行这个脚本。但是,如果你想要保留视频的可播放性,你应该寻找其他方法,比如使用mp4box添加元数据或轨道。
如果你决定使用上面的脚本,请确保在运行之前备份你的视频文件。要运行脚本,请保存到一个文件中(比如change_video_hashes.sh),然后在终端中使其可执行并运行它:
chmod +x change_video_hashes.sh
./change_video_hashes.sh
请记住,这种方法不是处理视频文件的推荐方式,因为它会导致视频文件损坏。如果你需要更改视频文件的hash值同时保持其可播放性,你应该考虑使用更专业的工具或方法。
console.clear()
let a = []
// populating array data
for (let i = 0; i < 10000; i++) {
a.push(i)
}
let testNum = 9000
let found
let totalMS4ForLoop = 0
let totalMS4ForIn = 0
let totalMS4ForOf = 0
let totalMS4IndexOf = 0
let start
let end
// simulating 10000 requests which are come consecutively
for (o = 0; o < 10000; o++) {
start = Date.now()
for (let i = 0; i < a.length; i++) {
if (a[i] == testNum) { found = a[i]; break }
}
end = Date.now()
totalMS4ForLoop += end - start
start = Date.now()
for (let j in a) {
if (a[j] == testNum) { found = a[j]; break }
}
end = Date.now()
totalMS4ForIn += end - start
start = Date.now()
for (let item of a) {
if (item == testNum) { found = item; break }
}
end = Date.now()
totalMS4ForOf += end - start
start = Date.now()
found = a[a.indexOf(testNum)]
end = Date.now()
totalMS4IndexOf += end - start
}
console.log("10000x10000 for-loop executions took total " + totalMS4ForLoop + " ms.")
console.log("10000x10000 for-in executions took total " + totalMS4ForIn + " ms.")
console.log("10000x10000 for-of executions took total " + totalMS4ForOf + " ms.")
console.log("10000x10000 indexOf executions took total " + totalMS4IndexOf + " ms.")
10000x10000 for-loop executions took total 60 ms.
10000x10000 for-in executions took total 1265 ms.
10000x10000 for-of executions took total 77 ms.
10000x10000 indexOf executions took total 14 ms.
当你使用 JavaScript 时,可以编写一个函数来判断一个变量是否为数字,包括字符串中表示数字的情况。以下是一个示例函数:
function isNumeric(value) {
// 使用 typeof 来判断变量是否为数字类型
if (typeof value === 'number') {
return true;
}
// 使用正则表达式来检查字符串是否表示数字
if (typeof value === 'string' && value.trim() !== '') {
// 去除字符串两端的空格,并检查是否为空字符串
return /^\d+(\.\d+)?$/.test(value.trim());
}
return false;
}
IDEA端口占用,而实际没有占用
尝试解决方法:
使用管理员身份打开命令提示符,执行命令 net stop winnat 和 net start winnat
Chrome浏览器的 Ctrl+W 关闭网页的快捷键经常用着用着不好使了,原因是企业微信的导致的快捷键冲突,关闭企业微信或其他企业微信私有部署的软件,就正常了。记录一下。
垃圾微信。