<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Alan-zzx的博客]]></title><description><![CDATA[燕雀安知鸿鹄之志哉]]></description><link>https://blog.youkuaiyun.com/m0_37264516</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_37264516]]></copyright><item><title><![CDATA[IDEA中的Gradle设置国内地址下载依赖包，不需要在项目gradle文件中配置]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/106569022</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/106569022</guid><author>m0_37264516</author><pubDate>Fri, 05 Jun 2020 13:49:26 +0800</pubDate><description><![CDATA[在USER_NAME/.gradle文件夹下新建文件init.gradle，如C:\Users\Alan\.gradle\init.gradle
打开文件使用以下配置下载路径：
buildscript {
    repositories {
        // 这里优先从阿里云镜像仓库下载所需的依赖
        maven { url "https://maven.aliyun.com/repository/google" }
        maven { url "https://maven.a]]></description><category></category></item><item><title><![CDATA[十三、MySQL数据库的锁，全局锁、表锁和行锁的应用]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/106553068</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/106553068</guid><author>m0_37264516</author><pubDate>Thu, 04 Jun 2020 17:30:28 +0800</pubDate><description><![CDATA[锁是在处理并发访问数据时，用于定义访问规则的数据结构。MySQL 中的锁根据作用范围分类有全局锁，表级锁和行锁。
全局锁
当你需要对数据库进行整库备份时，为了保证备份时刻的所有数据一致性，需要确保数据库在备份期间不进行数据更改操作。
考虑一般情况做数据备份时，正在进行下单的业务，假设有一个下单完成商品表和已付款金额表，下单完成的操作包含在商品表添加商品和在金额表记录是否付款。
此时，操作的顺序是：①备份下单商品表，②下单付款，③备份已付款金额表。若数据库崩溃恢复数据，则导致数据不完整，也就是商品已经下单完成]]></description><category></category></item><item><title><![CDATA[freeswitch通过lua脚本实现多方会话功能，包括会议录音自动外呼等]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/103794048</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/103794048</guid><author>m0_37264516</author><pubDate>Wed, 01 Jan 2020 16:48:52 +0800</pubDate><description><![CDATA[freeswitch 会议模块
freeswitch 自带有多方会议功能，在安装目录下的conf/autoload_configs/modules.conf.xml中，开启会议功能，通常默认是启用的，默认的 dialplan 配置下，注册分机拨3000即可进入默认配置的会议功能。这里的 3000 指的是会议号码，多个分机都拨这个号码即可进入同一个会议。
会议模块相关配置
会议模块同样也有对应的全局...]]></description><category></category></item><item><title><![CDATA[ODBC连接MySQL数据库查询报Segmentation fault错误的解决方案]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/103564893</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/103564893</guid><author>m0_37264516</author><pubDate>Mon, 16 Dec 2019 16:16:09 +0800</pubDate><description><![CDATA[安装odbc
yum install unixODBC-devel mysql-connector-odbc
配置mysql数据库连接
/etc/odbc.ini
[freeswitch]
DRIVER   = MySQL
SERVER   = 127.0.0.1
PORT     = 3306
DATABASE = freeswitch
USER     = root
PASSWORD = 12...]]></description><category></category></item><item><title><![CDATA[freeswitch源码定制功能，Linux下编译安装和使用]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/103517778</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/103517778</guid><author>m0_37264516</author><pubDate>Thu, 12 Dec 2019 22:03:38 +0800</pubDate><description><![CDATA[环境准备
CentOS系统需要安装gcc
查看是否已安装：
rpm -qa | grep gcc
gcc -v

安装命令：
yum install -y subversion autoconf automake libtool gcc-c++
yum install -y ncurses-devel make libtiff-devel libjpeg-devel

freeswitch 源码包...]]></description><category></category></item><item><title><![CDATA[解决eclipse切换jdk编译版本不起作用的问题]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/101493755</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/101493755</guid><author>m0_37264516</author><pubDate>Fri, 27 Sep 2019 02:45:35 +0800</pubDate><description><![CDATA[出现 BUG 的 eclipse 版本：
Version: Mars Release (4.5.0)
Build id: 20150621-1200

BUG 描述
java 项目使用的 JDK 版本为 1.8，由于 Linux 环境下 JDK 版本是 1.7，想要导出符合要求的 Jar 包，则需要将该项目的编译版本调整为 JDK 1.7，但是在 eclipse 中调整后依旧不起作用。
项目中使用...]]></description><category></category></item><item><title><![CDATA[业务开发性能问题，循环中不使用+拼接字符串、不操作数据库]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/101291884</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/101291884</guid><author>m0_37264516</author><pubDate>Tue, 24 Sep 2019 16:25:56 +0800</pubDate><description><![CDATA[循环拼接字符串使用 StringBuilder
public String fun2(String[] arr) {
    StringBuilder res = new StringBulider();
    for(int i=0; i&lt;10; i++) {
        res.append(arr[i]);
    }
    return res.toString();
}
...]]></description><category></category></item><item><title><![CDATA[MySQL数据类型隐式转换规则]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/100701942</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/100701942</guid><author>m0_37264516</author><pubDate>Tue, 10 Sep 2019 16:07:26 +0800</pubDate><description><![CDATA[两个参数至少有一个是 NULL 时，比较的结果也是 NULL，例外是使用 &lt;=&gt; 对两个 NULL 做比较时会返回 1，这两种情况都不需要做类型转换
两个参数都是字符串，会按照字符串来比较，不做类型转换
两个参数都是整数，按照整数来比较，不做类型转换
十六进制的值和非数字做比较时，会被当做二进制串
有一个参数是 TIMESTAMP 或 DATETIME，并且另外一个参数是常量，常量会...]]></description><category></category></item><item><title><![CDATA[十二、MySQL索引模型和存储、运作规则]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/100609850</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/100609850</guid><author>m0_37264516</author><pubDate>Sat, 07 Sep 2019 22:33:54 +0800</pubDate><description><![CDATA[在日常开发过程中，一条查询语句面对的数据量过大时，查询的时间就会很长，通常这个时候最方便也最有效的做法就是根据查询语句给表建一个索引，查询效率则会成倍的提高。
数据库的索引，类似新华字典的目录，新华字典有不止一个目录，有拼音目录和笔画目录等，查找某个字的时候，根据实际情况选择不同的一个或多个目录可以快速找到该字的位置，如果没有目录，那查找效率是无法想象的。同样的，数据库表也是同新华字典一样的存在，...]]></description><category></category></item><item><title><![CDATA[十一、MySQL实现事务的隔离：回滚日志（undo log）]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/100057600</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/100057600</guid><author>m0_37264516</author><pubDate>Sat, 24 Aug 2019 21:37:29 +0800</pubDate><description><![CDATA[事务的隔离级别
事务（Transaction）的存在是要保证一组数据库的操作全部成功或全部失败。例如在转账的时候，简单的说存在多步操作，查询余额，自己账户做减法，对方账户做加法，这几步操作必须全部成功或者全部失败，并且在事务的执行过程中数据被锁住，不会让其他事务再对数据进行更改。
MySQL 是一个支持多引擎的数据库系统，并且事务都在引擎中实现。其中 MyISAM 引擎不支持事务，我们以 Inno...]]></description><category></category></item><item><title><![CDATA[binlog 与 redo log 的区别]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/99618092</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/99618092</guid><author>m0_37264516</author><pubDate>Wed, 14 Aug 2019 23:26:08 +0800</pubDate><description><![CDATA[binlog 写入机制
我们知道 redo log 的写入机制是事务中有更新操作时就会将更新操作记录在 redo log buffer 中，在事务提交时，根据相关参数的设定，按照不同逻辑持久化到磁盘文件。
binlog 区别于 redo log，每个事务所在的线程都会存在一个 binlog cache，并且只有事务提交时会持久化到磁盘文件（binlog file）。注意磁盘文件是共用的，只有 bi...]]></description><category></category></item><item><title><![CDATA[为什么从 redo log buffer 刷入 redo log file 不是一次磁盘 IO 操作]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/99480237</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/99480237</guid><author>m0_37264516</author><pubDate>Tue, 13 Aug 2019 21:47:30 +0800</pubDate><description><![CDATA[redo log
redo log的作用就像是在记账时的临时小账本，先临时记录某人的账目变化情况，在之后将这个变化记录到真正的账本中。如此一来当需要记账的人很多时可以提高效率（比从账本中查找某人再记录效率高）。
在 MySQL 中，如果没有 redo log 更新语句成本最高的地方就是每次都要从表中找到对应数据行并对其修改，这一次次的磁盘 IO 操作是最耗时的，因此 redo log 的出现提高了...]]></description><category></category></item><item><title><![CDATA[十、MySQL redo log 和 bin log 概述]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/97638424</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/97638424</guid><author>m0_37264516</author><pubDate>Mon, 29 Jul 2019 13:51:04 +0800</pubDate><description><![CDATA[UPDATE test SET name = 'abc' WHERE id = 1;

更新语句的执行流程与查询语句类似，同样是需要经过下图的流程。首先清空对应表的缓存，经过分析器，优化器，执行器最终操作存储引擎修改表中数据。

除此之外，MySQL为了保证在高并发更新数据时的效率以及数据的恢复能力，引入了两个日志模块，redo log和bin log。
redo log
redo log实际上是...]]></description><category></category></item><item><title><![CDATA[MySQL内置函数——数学函数]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/97183800</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/97183800</guid><author>m0_37264516</author><pubDate>Wed, 24 Jul 2019 23:28:01 +0800</pubDate><description><![CDATA[MySQL中的数学函数，通常参数为整型，若参数为字符串，大多数情况会将字符串转型成整型计算。若无法转换成整型则会出现意外的结果。参数为NULL时，返回值为NULL。
常见数学函数

abs(n)
返回n的绝对值
sign(n)
返回参数的符号(为-1、0或1)
mod(n,m)
取模运算,返回n被m除的余数(同%操作符)
floor(n)
返回不大于n的最大整数值
ceiling(n)
返回不小于...]]></description><category></category></item><item><title><![CDATA[九、MySQL基础架构概述]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/96870174</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/96870174</guid><author>m0_37264516</author><pubDate>Mon, 22 Jul 2019 16:29:44 +0800</pubDate><description><![CDATA[MySQL基础架构
SELECT * FROM student WHERE stu_id = 007;

这样一条简单的 SQL 语句，可以从 student 表中查询得到 stu_id 为 007 的数据，学会写 SQL 语句后，在使用数据库时，只能观察到数据库执行了 SQL 语句，并且返回了所需要的数据。那么，MySQL 在拿到 SQL 语句之后做了哪些操作呢？
这涉及到 MySQL 的基础架...]]></description><category></category></item><item><title><![CDATA[MySQL内置函数——关于时间戳转换和计算函数]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/96651631</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/96651631</guid><author>m0_37264516</author><pubDate>Sun, 21 Jul 2019 00:32:43 +0800</pubDate><description><![CDATA[MySQL内置关于时间戳的计算和转换函数介绍
TIMESTAMP函数
语法：
TIMESTAMP(datetime_expr)
TIMESTAMP(datetime_expr,int_expr)

说明：
一个参数时，是将datetime_expr转换成时间戳格式(timestamp)，两个参数时，是将datetime_expr转换成时间戳并加上int_expr
使用举例：
mysql&gt; s...]]></description><category></category></item><item><title><![CDATA[八、MySQL数据库高级操作]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/96647456</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/96647456</guid><author>m0_37264516</author><pubDate>Sat, 20 Jul 2019 23:30:44 +0800</pubDate><description><![CDATA[数据库的备份与还原
数据的备份：mysqldump命令
mysqldump -u username -p password dbname [tbname1 [tbname2...]] &gt; filename.sql

还原数据库：mysql命令或者source命令
mysql -u username -p password [dbname]&lt;filename.sql
//注意：应先新建空...]]></description><category></category></item><item><title><![CDATA[七、MySQL视图语法基础]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/96437085</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/96437085</guid><author>m0_37264516</author><pubDate>Thu, 18 Jul 2019 17:03:48 +0800</pubDate><description><![CDATA[视图是从一个或多个表中导出来的表，是一种虚拟存在的表，并且表的结构和数据都依赖于基本表。通过视图可以看到基本表中的数据，也可以像操作基本表一样操作视图，进行增删改查。可以简化查询语句，具有更高的安全性，逻辑数据独立性。
视图管理
创建视图语法格式
CREATE [OR REPLACE] [ALGORITHM] = {UNDEFINED或者MERGE或者TEMPTABLE}
VIEW view_na...]]></description><category></category></item><item><title><![CDATA[六、MySQL事务与存储过程]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/96303165</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/96303165</guid><author>m0_37264516</author><pubDate>Wed, 17 Jul 2019 14:00:31 +0800</pubDate><description><![CDATA[JDBC事务控制
事务概述：指逻辑上的一组操作，组成这组操作的各个单元，要么全成功，要么全部不成功。
举例说明：银行中要将A账户中转100元到B账户,这两步操作必须都成功或都不成功
update account set money = money-100 where name='A';
update account set money = money+100 where name='B';

控制...]]></description><category></category></item><item><title><![CDATA[五、SQL多表查询语法]]></title><link>https://blog.youkuaiyun.com/m0_37264516/article/details/96103250</link><guid>https://blog.youkuaiyun.com/m0_37264516/article/details/96103250</guid><author>m0_37264516</author><pubDate>Tue, 16 Jul 2019 09:43:16 +0800</pubDate><description><![CDATA[外键
可以明确的声明表和表之间的字段的关系，使数据库帮我们维护这种关系，这就是外键。如果一个操作破坏这种外键约束，则数据库会阻止这个操作。
为表添加外键
创建表的时候声明外键
FOREIGN KEY(ordersid) REFERENCES ORDERS(id);

--例如：为职员表添加外键关联部门表
create table dep(
    id int primary key auto_i...]]></description><category></category></item></channel></rss>