MySQL 各种连接

准备工作

MySQL 版本:10.1.29-MariaDB-6+b1

建表 SQL:

1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `a_table` (
`a_id` int(11) DEFAULT NULL,
`a_name` varchar(10) DEFAULT NULL,
`a_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `b_table` (
`b_id` int(11) DEFAULT NULL,
`b_name` varchar(10) DEFAULT NULL,
`b_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Read more

Redis、Memcached

共同点

Memcached 和 Redis 都很类似:都是内存型数据库,数据保存在内存中,通过 TCP 直接存取,速度快,并发高,但数据类型有限,查询功能不强,一般用作缓存。

Read more

MySQL 大表优化方案

前言

当 MySQL 单表记录数过大时,增删改查性能都会急剧下降,可以参考以下优化手段:

  • 单表优化
  • 读写分离
  • 缓存
  • 拆分
  • NoSQL
Read more

跨域资源共享 CORS 详解

CORS

CORS:跨域资源共享(Cross-origin resource sharing),是一个 W3C 标准。

作用:允许浏览器向跨源服务器发出 XMLHttpRequest 请求,从而克服 AJAX 只能同源使用的限制。

Read more

是否有必要建外键

前言

最近做项目,是在已有数据库基础上写业务,然后发现了很多本是外键的字段并没有设置外键约束。因为之前都是按照规范建数据表,所以对此有点奇怪,然后在网上找到了比较好的回答。

观点对比

大家共同观点:主键和索引是不可少的,不仅可以优化数据检索速度,开发人员还省了其它的工作。

矛盾焦点:数据库设计是否需要外键。这里有两个问题:如何保证数据库数据的完整性和一致性;在第一条的基础上对性能的影响。

Read more

Java 算法模版

辗转相除法

求最大公约数
最小公倍数 = ab/最大公约数

递归
1
2
3
long gcd(long a, long b) {
return a == 0 ? b : gcd(b % a, a);
}
迭代
1
2
3
4
5
6
7
8
long gcd(long a, long b) {
long tmp;
while ((tmp = a % b) != 0) {
a = b;
b = tmp;
}
return b;
}
Read more

三个常见博弈游戏

前言

通过数论或者自然数性质完美解决的三个常见博弈游戏:

博弈解决方法
Bash Game同余理论
Nim Game异或理论
Wythoff Game黄金分割
Read more