OpenGL默认设置着色器很繁琐,编译源码使用字符串硬编码的方式容易出错,如下面这种写法// 顶点着色器源码
auto vertexShaderSource =
"#version 330 core\n"
"...
阅读全文...
使用gprof和perf优化程序
一、gprof测试用例#include <iostream>
#include <vector>
#include <chrono>
#include <thread>
// 递归阶乘函数
unsigne...
阅读全文...
阅读全文...
基于protobuf开发的rpc框架
RPC(Remote Procedure Call Protocol)远程过程调用协议,过程示意图一、提供方配置1.1、生成服务对象要提供RPC服务,需要在proto中添加service信息,protoc会为每个service生成对应的C++类,包含虚函...
阅读全文...
阅读全文...
MySQL-主从复制
主从复制:两个日志(binlog二进制日志,relay log日志)和三个线程(master一个线程和slave两个线程)主库对外提高增删改查服务,从库根据二进制日志将数据同步到从库.一、主从复制流程:两个日志(binlog/relay log)和三个线...
阅读全文...
阅读全文...
MySQL-读写分离配置
读写分离就是在主服务器上修改,数据会同步到从服务器,从服务器只能提供读取数据,不能写入,实现备份的同时也实现了数据库性能的优化,以及提升了服务器安全。 使用读写分离,一般需要配合代理中间件MyCat,客户端将要执行的sql发送到MyCat,MyCat会...
阅读全文...
阅读全文...
MySQL-排序order by
mysql> show create table user\G;
*************************** 1. row ***************************
Table: user
Create T...
阅读全文...
阅读全文...
MySQL-阻塞问题排查
这里以解决DROP INDEX 阻塞 的问题为例:1. 确认问题背景操作内容:DROP INDEX 需要获取 表级独占锁,可能被其他事务或连接阻塞。常见原因:未提交的事务持有表的共享锁或意向锁。长时间运行的查询或未关闭的连接阻塞表操作。高隔离级别(如 S...
阅读全文...
阅读全文...
MySQL数据库无法插入中文解决
MySQL数据库无法插入中文解决一、数据库修改先修改数据库的字符集编码ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;再修改表的字符集编...
阅读全文...
阅读全文...
MySQL-存储引擎
各存储引擎区别锁机制:表示数据库在并发请求访问的时候,多个事务在操作时,并发操作的粒度。B-树索引和哈希索引:主要是加速SQL的查询速度。外键:子表的字段依赖父表的主键,设置两张表的依赖关系。事务:多个SQL语句,保证它们共同执行的原子操作,要么成功,要...
阅读全文...
阅读全文...
MySQL-limit
从图中我们可以看出,我们使用explain查看了sql的执行计划,由于我们将name字段设置为unique,所以MySQL自动为name字段设置了索引,所以只查询了一行,即rows等于1,但是,由于age没有设置索引,尽管age=13在第二行,他也是查询...
阅读全文...
阅读全文...
MySQL-内连接inner join
mysql> use school;
Reading table information for completion of table and column names
You can turn off this feature to get a...
阅读全文...
阅读全文...
MySQL-分组group by
mysql> select name,age from user group by age;
ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause an...
阅读全文...
阅读全文...