
为什么要有 Buffer Pool?
虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。
要想提升查询性能,加个缓存就行了嘛。所以,当数据从磁盘中取出后,缓存内存中,下次查询同样的数据的时候,直接从内存中读取。
2020年10月17日大约 16 分钟
虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。
要想提升查询性能,加个缓存就行了嘛。所以,当数据从磁盘中取出后,缓存内存中,下次查询同样的数据的时候,直接从内存中读取。
mysql 中的表标题字段,基本的格式为 xxxx;yyyy
yyyy 是一些无关的信息拼接。
希望按照 ;
分割,或者 xxxx 部分的内容。
在MySQL中,你可以使用SUBSTRING_INDEX()
函数来截取分号;
之前的内容。
SUBSTRING_INDEX()
函数接受三个参数:字符串、分隔符和一个数字,表示在分隔符之前或之后返回多少个子字符串。
如果你想要获取分号;
之前的内容,可以这样使用这个函数:
希望通过命令行执行脚本文件
在 MySQL 中,你可以通过命令行执行脚本文件(例如 .sql
文件)使用以下命令:
打开终端或命令提示符。
使用以下命令登录到 MySQL 数据库:
mysql -u 用户名 -p
输入你的 MySQL 密码。
一旦登录,你可以使用 source
命令来执行脚本文件:
source /path/to/your/script.sql;
替换 /path/to/your/script.sql
为你的实际脚本文件路径。
mysql 服务端为 5.7x 版本,本地 springboot 2.x,默认引入 mysql 版本为 8.x。
应用执行报错:
java.sql.SQLNonTransientConnectionException Could not create connection to database server
我有三张表。raw, mapping 和 route。
其中 mapping 中记录了每一次 raw 的通知,raw_uid 和 notify_uid 多对多,每一次通知 notify_uid 在 route 表中可能对应多个渠道。
select route.id, raw.type
from route r join mapping m on m.notify_uid=r.notify_uid
left join raw orgi on orgi.raw_uid = m.raw_uid
where r.create_time between '2024-11-14 15:40:00' AND '2024-11-14 16:40:00'