March 29, 2018
聚簇索引概念(Myisam与Innodb索引的区别)转推荐
"myisam的主索引和次索引都指向物理行,下面来进行讲解\ninnodb的主键下存储该行的数据,此索引指向对主键的引用\nmyisam的索引存储图如下,可以看出,无论是id还是cat_id,下面都存储有存储物理地址的值。通过主键索引或者次索引来查询数据的时候,都是先查找到\u001b数据地址,然后再到物理位置上去寻找数据。\n[][1]\ninnodb的索引存储图如下,我们会发现,主键索引下面直接存储有数据,而次索引下,存储的是主键的id(不同于MyISAM,存储的是内容数据的物理地址)。通过主键查找数据的时候,就会很快查找到数据,但是通过次索引查找数据的时候,需要先查找到对应的主键id,然后才能查找到对应的数据。\n[][2]\n总结: InnoDB的主索引文件上 直接存放该行数据,称为聚簇索引,次索引指向对主键的引用. Myisam中, 主索引和次索引,都指向物理行(磁盘位置).\n注意:对InnoDB来说, 1: 主键索引 既存储索引值,又在叶子中存储行的数据 2: 如果没有主键, 则会Unique key做主键 3: 如果没有unique,则系统生成一个内部的rowid做主键. 4: 像innodb …"
March 27, 2018
IE浏览器报Promise错误的解决办法
"说明ie浏览器不支持Promise,可搜索关键字 polyfill,引入以下库即可\nhttps://cdn.polyfill.io/v2/polyfill.min.js?features=es6\n官方文档: https://cdn.polyfill.io/v2/docs/ 参考: https://www.cnblogs.com/XHappyness/p/7919610.html 参考: https://www.jianshu.com/p/2888a8e204e8"
March 12, 2018
linux下git版本过底引起的无法git clone的解决方案
"刚安装的新系统,git版本为1.8.3,使用git clone命令的时候,提示“… Peer reports incompatible or unsupported protocol version”\n只需要升级一下基本包即可。\nsudo yum update nss curl # nss为名称解析和认证服务 curl为网络请求库 "
March 8, 2018
Go中slice作为参数传递的一些“坑”
"看明白了这篇文章,下面的例子基本也就明白了\npackage main import \u0026#34;fmt\u0026#34; func main() { a := []int{1,2,3} abc(a) fmt.Println(a) } func abc(a []int) { a[0] = 2 //修改后还是原来的a a = append(a, 4) // 此a非原a,使用append导致了重新分配内存地址(存储空间不足,系统自动分配一块新的足够大的内存地址,此时a的物理内存地址已经发行了变化,并将原来a的值copy一份到新的内存地址,所以这里修改的只是新内存地址的值,原来内存地址的值并没有改变),试着删除这行运行一次再看结果 fmt.Println(a) a[0] = 7 // 新a,因为上面执行了append fmt.Println(a) fmt.Printf(\u0026#34;\\n===\\n\u0026#34;) } 解释: [][1]"
March 3, 2018
golang中string rune byte 三者的关系
"Go 语言中 byte 和 rune 实质上就是 uint8 和 int32 类型。 byte 用来强调数据是 raw data,而不是数字;而 rune 用来表示 Unicode 的 code point。参考 规范.\n在Golang中 string 底层是用byte字节数组存储的,并且是不可以修改的。\nGo语言中的byte和rune区别、对比 例如\ns:=\u0026#34;Go编程\u0026#34; fmt.Println(len(s)) //输出结果应该是8因为中文字符是用3个字节存的(2+3*2=8)。 fmt.Printf(\u0026#34;%d\u0026#34;, len(string(rune(\u0026#39;编\u0026#39;)))) //经测试一个汉字确实占用3个字节,所以结果是3 如果想要获得字符个数的话,需要先转换为rune切片再使用内置的len函数\nfmt.Println(len([]rune(s))) // 结果就是4了。 所以用string存储unicode的话,如果有中文,按下标是访问不到的,因为你只能得到一个byte。 要想访问中文的话,还是要用rune切片,这样就能按下表访问。\n总结: rune …"
February 21, 2018
解决mac下brew link python3出错brew Error: Permission denied @ dir_s_mkdir – /usr/local/Frameworks
"mac上默认的python版本为2.7.10版本,需要升级到python3 版本,通过brew升级\n$brew install python3 提示错误\n$ brew install python3 Warning: python3 3.6.3is already installed, it‘s just not linked. You can use brew link python3 to link this version. $ brew link python3 Linking /usr/local/Cellar/python3/3.6.3… Error: Permission denied @ dir_s_mkdir\n发现/usr/local/下没有路径/usr/local/Frameworks 需要新建该路径,并修改权限\n解决:\n$ sudo mkdir /usr/local/Frameworks $ sudo chown $(whoami):admin /usr/local/Frameworks 成功:\n$ brew link python3 Linking …"
February 8, 2018
Docker Machine 简介
"一句话概括的话就是 Docker Machine是一个可以方便对多个宿主服务器中的多个容器进行管理的工具。\nDocker 与 Docker Machine 的区别 https://www.cnblogs.com/sparkdev/p/7066789.html\nDocker Machine 工具出现的意义 https://www.2cto.com/net/201707/660864.html\nDocker Machine 用法 http://www.linuxidc.com/Linux/2017-06/145232.htm\nDocker Machine 命令 http://blog.csdn.net/warren_1992/article/details/51451522\nMac平台上Docker安装与使用 http://blog.csdn.net/warren_1992/article/details/51451522"
February 8, 2018
windows平台在dos下执行docker pull 命令出错
"这里docker Machine 是安装和管理 Docker 的工具(用来代替Boot2Docker,对于个人玩的话,不建议使用docker Machine,毕竟多了一个虚拟层,不如直接使用当前物理机器作为容器的宿主机)\n$ docker pull gitlab/gitlab-ce:latest Warning: failed to get default registry endpoint from daemon (error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.33/info: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the …"
January 26, 2018
利用“码云gitee”的钩子实现git仓库自动更新
"使用git时,传统发布方式是手动将新代码 上传到远程仓库,然后在登录服务器执行git pull命令拉取最新的代码,这种操作如果频繁更新的话,我们可以利用git的钩子来实现自动 部署 功能。\n前提: linux php (gitpull.php) nginx 运行用户为 www\n注意网站 gitpull.php 文件权限问题,还有是否有shell_exec 命令的执行权限\n一、先创建自动部署用户的密钥\nsudo - www ssh-keygen -t rsa -C \u0026#34;syadmin@gmail.com\u0026#34; 二、将用户www生成的公钥添加到码云后台\ncat ~/.ssh/id_rsa.pub 三、将码云域名gitee.com 添加到授权白名单\nssh-keyscan -t rsa gitee.com \u0026gt;\u0026gt; ~/.ssh/known_hosts 或者以www用户执行一次gitpull命令\nsudo - www cd /data/wwwroot/www git pull 根据提示,输入 yes 即可。\n四、在码云的部署钩子里进行url设置\nurl …"
December 14, 2017
vux中实现自定义皮肤
"有时候我们需要根据自己的需要对 weui默认的颜色进行修改,如果在每个单面里修改的过过于麻烦,我们可以使用一个less配置文件来实现对默认配置进行重置。\n修改 webpack.base.conf.js 文件,找到\nmodule.exports = vuxLoader.merge(webpackConfig, { plugins: [\u0026#39;vux-ui\u0026#39;, \u0026#39;progress-bar\u0026#39;, \u0026#39;duplicate-style\u0026#39;, ] }) 修改如下:\nmodule.exports = vuxLoader.merge(webpackConfig, { plugins: [\u0026#39;vux-ui\u0026#39;, \u0026#39;progress-bar\u0026#39;, \u0026#39;duplicate-style\u0026#39;, { name: \u0026#39;less-theme\u0026#39;, path: \u0026#39;src/theme.less\u0026#39; }] }) 然后在项目的 src 目录里创建文件 theme.less, …"