- 博客(72)
- 收藏
- 关注
原创 单列索引、多列索引及如何选择合适的索引列顺序
1、单列索引最常见的索引类型涉及单个列,在数据结构中存储该列的值的副本,允许快速查找具有相应列值的行。 B树数据结构允许索引在WHERE子句中快速查找特定值,一组值或一系列值,对应于运算符如=,>,≤,BETWEEN,IN等。mysql> create table people( -> last_name varchar(50) not null, ->...
2019-08-28 14:43:45
2185
原创 MySQL前缀索引和索引选择性
1、我们怎么合理使用前缀索引有时候需要索引很长的字符列,这会让索引变得大且慢。通常可以索引开始的部分字符,这样可以大大节约索引空间,从而提高索引效率。但这种做法会带来新的问题,降低索引的选择性。索引的选择性是指不重复的索引值(也称为基数)和数据表的记录总数(#T)的比值,范围从1/#T到1之间。索引的选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找时过滤掉更多的行。唯一索引...
2019-08-28 11:36:37
324
原创 MySQL全文索引之布尔全文索引、查询扩展全文索引
1、布尔全文索引MySQL可以使用IN BOOLEAN MODE修饰符执行布尔全文搜索 。使用此修饰符,某些字符在搜索字符串中的单词的开头或结尾处具有特殊含义。在以下查询中, +和-运算符分别表示必须存在或不存在单词才能进行匹配。因此,下面这个例子表示,检索包含单词 ''MySQL"但不包含"database"的所有行mysql> select * from articles;+---...
2019-08-27 16:16:08
1883
原创 MySQL全文索引之自然语言全文索引、更改默认停用词
mysql> CREATE TABLE articles ( -> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, -> title VARCHAR(200), -> body TEXT, -> FULLTEXT (title,body) -> ) ENGINE=I...
2019-08-26 15:25:12
1081
原创 高性能MySQL学习五(B+树索引、哈希索引、全文索引)
1、为什么使用索引索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。表越大,成本越高。但如果表中有相关列的索引,MySQL就可以快速确定要在数据文件中间寻找的位置,而无需查看所有数据。这比按顺序读取每一行要快得多。大多数MySQL索引(PRIMARY KEY, UNIQUE,INDEX和 FULLTEXT)存储在B树。例外情况是空间数据...
2019-08-23 14:55:42
567
原创 Mongo副本集问题("lastHeartbeatMessage" : "replica set IDs do not match, ours: xxx; remote node's:xxx")
副本集添加从库时出现了这样的问题,[root@sg_adn_tkcpmongoslaveAli_rs-47.88.231.105:47.88.231.105 ~]#/usr/bin/mongod -f /etc/mongod.conf --replSet adntkcpmongo2nd[root@sg_adn_tkcpmongoslaveAli_rs-47.88.231.105:47.8...
2019-08-22 10:16:29
1548
原创 高性能MySQL学习四(整数、浮点、字符串、ENUM枚举、日期时间、位等数据类型)
1、整数类型这些整数类型的存储值的范围可以从-2(N-1) 到2(N-1) ,其中N是存储空间的位数。整数类型可选的UNSIGNED属性表示不允许负值,着大致可以使得正数的上限提高一倍。有符号和无符号使用相同的存储空间,具有相同的性能。mysql> create table t1(ida int,idb int(5));Query OK, 0 rows affected, 1 wa...
2019-08-21 15:27:04
667
原创 高性能MySQL学习三(性能优化、pt-query-digest的使用、SHOW PROFILE分析)
1、性能优化简介首先,我们将性能定义为完成某件任务所需要的时间,简言之,性能即响应时间。所谓性能优化就是在一定的工作负载下尽可能地降低响应时间。(吞吐量是单位时间内的查询数量,所以性能优化也可以说成提升吞吐量)接着,要知道的一点是,有效测量才能有效优化。通过性能剖析进行有效地性能优化:2、通过pt-query-digest进行性能剖析(1)pt-query-digest安装官网安...
2019-08-16 10:03:06
324
原创 mongo从库启动异常(ERROR: child process failed, exited with error number 100)
问题描述,下载mongo后修改配置文件,然后使用/etc/init.d/mongod脚本启动,成功启动,后面发现配置文件bindIp处需要注释,于是重新修改配置文件,这时重启失败,试着关闭后再次start,stop成功而start报了如下错误:[root@sg_adserver_mongoAli-161.117.199.175:161.117.199.175 ~]#/etc/init.d/mon...
2019-08-15 17:37:50
1076
原创 MySQL的InnoDB表、自增字段(AUTO_INCREMENT)处理
1、创建InnoDB表mysql> SELECT @@default_storage_engine; //查看默认存储引擎+--------------------------+| @@default_storage_engine |+--------------------------+| InnoDB |+----------------...
2019-08-14 15:09:47
918
原创 高性能MySQL学习二(常用存储引擎功能摘要、InnoDB内存结构)
高性能MySQL学习一存储引擎是MySQL组件,用于处理不同表类型的SQL操作,SHOW ENGINES语句可以查看服务器支持哪些存储引擎。mysql> SHOW ENGINES\G*************************** 1. row *************************** Engine: MRG_MYISAM Support: Y...
2019-08-14 10:30:52
170
原创 MySQL四种隔离级别及对应示例详解
前面我们了解了MySQL事务和四种隔离级别,以及各个级别会导致的一些问题,不了解的可以戳这里:MySQL事务、隔离级别,今天我们通过例子来直观的感受一下.首先声明一下,这里安装的是MySQL8,那么我们先来查看一下MySQL的默认隔离级别mysql> select @@global.transaction_isolation; //全局隔离级别mysql> select @@t...
2019-08-13 16:44:51
294
原创 Shell脚本中的位置参数( $0、$n、${10} ) 、特殊参数( $#、${!#}、$*、$@ )、shift命令和read命令详解
1位置参数变量是标准的数字:$0是程序名,$1是第一个参数,$2是第二个参数,依次类推,直到第九个参数$9。[root@relay3.mobvista.com:101.251.254.6 shell]#cat test.sh#!/bin/bashecho "The zero parameter is set to : $0"[root@relay3.mobvista.com:101.25...
2019-08-09 16:51:10
1866
1
原创 MySQL基准测试、sysbench使用
基准测试,简单来说,就是针对系统设计的一种压力测试,通常目标是为了掌握系统的行为。1、基准测试策略(1)集成式基准测试:针对整个系统(2)单组件式基准测试:针对数据库2、测试指标(1)吞吐量:单位时间内的事务处理数(2)响应时间或者延迟:用于测试任务所需的整体时间如,要测量特定MySQL表达式或函数的速度,可以调用BENCHMARK()函数mysql> select be...
2019-08-05 16:14:33
256
原创 高性能MySQL学习一(逻辑架构、并发控制、事务、四种隔离级别、多版本并发控制MVCC)
1、MySQL三层逻辑架构第一层负责连接管理、授权认证、安全性等。每个客户端的连接都对应着服务器上的一个线程。服务器上维护了一个线程池,避免为每个连接都创建销毁一个线程。当客户端连接到MySQL服务器时,服务器对其进行认证。可以通过用户名和密码的方式进行认证,也可以通过SSL证书进行认证。登录认证通过后,服务器还会验证该客户端是否有执行某个查询的权限。第二层负责解析查询(编译SQL...
2019-08-02 14:18:52
238
原创 shell脚本的输入输出和重定向
1、输入和输出Linux系统将每个对象当作文件处理,包括输入和输出进程。Linux用文件描述符来标识每个文件对象。bash shell保留了三个文件描述符(0、1和2)。文件描述符缩写描述0STDIN标准输入1STDOUT标准输出2STDERR标准错误这三个特殊文件描述符会处理脚本的输入和输出。shell用它们将shell默认的输入和输出导向...
2019-07-31 18:27:41
500
原创 shell脚本中的结构化命令(if-then-else、case、for、while、until) && 脚本中的循环控制
1、 结构化命令上一次我们学习了shell脚本的一些基础知识,想了解的可以戳这个: shell脚本基础(环境变量、重定向、数学运算、退出脚本)之前,在我们的示例shell脚本里,shell按照命令在脚本中出现的顺序依次进行处理。然而有时候,我们需要对shell脚本中的命令施加一些逻辑流程控制。有一类命令会根据条件使脚本跳过某些命令。这样的命令通常称为结构化命令,它允许我们改变程序执行的顺序。...
2019-07-31 17:00:49
972
原创 shell脚本基础(环境变量、重定向、数学运算、退出脚本)
echo命令可用单引号或双引号来划定文本字符串。如果在字符串中用到了它们,你需要在文本中使用其中一种引号,而用另外一种来将字符串划定起来。要把文本字符串和命令输出显示在同一行中,该怎么办呢?可以用echo语句的-n参数[root@vg-adn-adxCreateImageAli:47.90.255.30 haha]#cat test1.sh#! /bin/bash#This script...
2019-07-31 10:17:37
350
原创 MongoDB高级聚合查询(单用途聚合、聚合管道)
1、单一用途的聚合方法> db.orders.find(){ "_id" : ObjectId("5d3abc3ab3a8911f2c1a70d4"), "ino" : 1, "quantity" : 2, "price" : 4 }{ "_id" : ObjectId("5d3abc4bb3a8911f2c1a70d5"), "ino" : 2, "quantity" : 2, "p...
2019-07-29 16:43:25
753
原创 MongoDB的条件操作符 && limit()、skip()、sort()方法 &&(单健、多健、复合)索引
1、MongoDB 条件操作符(1)条件操作符>$gt>=$gte<$lt<=$lte> db.test.find(){ "_id" : ObjectId("5d3818f585ad3637d228a6ad"), "title" : "PHP", "tag" : "php", "likes" : 100 }{ "_i...
2019-07-26 15:44:21
409
原创 MongoDB的安装 && 基本概念学习 && 数据库、集合和文档的基础操作
一、什么是MangoDB?1、了解MangoDB之前,我们先来了解一下NoSQL:NoSQL指的是非关系型的数据库,有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。2、我们为什么使用N...
2019-07-24 16:27:03
373
1
原创 TCP三次握手、四次挥手及连接的11种状态详解
1、TCP三次握手全过程TCP建立连接的过程叫做握手,握手的过程需要客户端和服务器端之间交换三个TCP报文段。下图画出了TCP连接的过程。如上图所示,主机A运行的是TCP客户程序,主机B运行的是TCP服务器程序,主机下的方框是TCP进程所处的状态。最初两端TCP进程都处于CLOSED(关闭)状态,本例中,A主动打开连接,B被动打开连接。(1)我们看看具体的三次握手过程:B的TCP服务...
2019-05-20 21:14:24
712
原创 常用的bash shell命令(ls、链接文件、查看文件内容、监测进程)
1、启动shellShell提供对Linux系统的交互式访问,它是作为普通程序运行的,通常是在用户登录终端时启动,登录时系统启动的shell依赖于用户账户的配置。/etc/passwd文件记录了用户账户列表以及每个用户的基本配置信息。每个条目有7个字段,每个字段分别是:用户名:密码:UID:GID:文本描述(称备注字段):用户家目录:用户默认shell注:密码并不是x,只是很多程序都会...
2019-04-10 15:39:56
1889
原创 初识Linux shell(学习Linux内核、GNU工具、Linux桌面环境)
1、什么是Linux在学习如何使用Linux命令行和shell之前,我们先来学习一下什么是Linux。Linux可划分为以下四个部分:Linux内核GNU工具图形化桌面环境应用软件说到Linux,不得不提的一个人——Linus Torvalds,Linus在赫尔辛基大学上学时就开发了第一版Linux内核。Linux系统的核心是内核,内核控制着计算机系统上所有软件和硬件,在必要时分...
2019-04-08 11:58:48
397
原创 nginx虚拟主机、重定向、访问控制、缓存设置、服务器防盗链
1、虚拟主机[root@server1 conf]# pwd/usr/local/lnmp/nginx/conf[root@server1 conf]# vim nginx.confhttp{...121 server{122 listen 80;123 server_name www.westos.org;124 125 lo...
2018-08-23 14:19:22
442
原创 RHCS套件实现nginx集群的高可用,fence工作原理及配置
[root@server4 ~]# cd /etc/yum.repos.d/[root@server4 yum.repos.d]# vim rhel-source.repo //扩展yum源[LoadBalancer] //负载均衡name=LoadBalancerbaseurl=http://172.25.29.250/rhel6.5/LoadBalancergpgcheck...
2018-08-23 10:29:16
1051
2
原创 saltstack实现haproxy负载均衡和keepalived的高可用
1、实验环境172.25.29.1 salt-master server1 keepalived-master haproxy172.25.29.2 salt-minion server2 httpd172.25.29.3 salt-minion server3 nginx172.25.29.4 salt-minion server4 keepalived-backup...
2018-08-21 13:47:08
244
原创 saltstack自动化运维的部署及httpd、nginx安装实例
1、实验环境172.25.29.1 salt-master server1172.25.29.2 salt-minion server2 172.25.29.3 salt-minion server32、saltstack的部署###主机共享rhel6的yum源[root@foundation29 html]# pwd/var/www/html[...
2018-08-19 17:26:22
321
原创 Nginx静态编译、负载均衡、添加模块
1、nginx的静态编译[root@server5 ~]# lsnginx-1.14.0.tar.gz[root@server5 ~]# tar zxf nginx-1.14.0.tar.gz [root@server5 ~]# lsnginx-1.14.0 nginx-1.14.0.tar.gz[root@server5 ~]# cd nginx-1.14.0[root@s...
2018-08-16 14:06:19
1437
原创 Lvs的Fullnat工作模式原理及部署、内核编译
1.客户端将访问vip报文发送给LVS服务器; 2.LVS服务器将请求报文的目的地址修改为后端真实服务器(DNAT),源地址改为自己的ip地址(SNAT),发送给后端真实服务器; 3.后端服务器在处理完之后要将响应的报文返回给lvs; 4.LVS将返回的数据包源地址改为自己(SNAT),目的地址改为客户端(DNAT),发送给客户端。...
2018-08-16 11:42:33
897
原创 Zabbix的安装部署、主机发现及api自动控制
1、实验环境server10 172.25.29.10 zabbix-server rhel7.3server6 172.25.29.6 zabbix-agent rhel6.5zabbix:是一基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解...
2018-08-16 10:54:01
556
原创 zabbix+onealert告警、zabbix-agent工作模式更改及zabbix-proxy
1、实验环境server10 172.25.29.10 rhel7.3 zabbix-serverserver6 172.25.29.6 rhel6.5 zabbix-agentserver11 172.25.29.11 rhel7.3 zabbix-proxy2、onealert告警(1)首先我们需保证zabbix-server主机是可以连网的###主机:[r...
2018-08-15 23:59:07
328
原创 zabbix监控nginx、percona、java
1、实验环境server10 172.25.29.10 rhel7.3 zabbix-serverserver6 172.25.29.6 rhel6.5 zabbix-agent2、监控nginx###server10:[root@server10 3.4]# systemctl start mariadb[root@...
2018-08-15 22:38:28
163
原创 Lvs的NAT、TUN工作模式原理及部署
1、NAT工作原理地址翻译实现虚拟服务器 调度器接受到客户端的请求之后,根据调度算法,将客户端的的请求发送给服务器,服务器处理完请求,查看默认路由(NAT模式下需要将服务器的默认网关设置为调度器),VS接受到响应包以后,将源IP进行修改为自己,然后将响应数据发送给客户端。 NAT模式下的数据流走向:Client -&amp;amp;amp;amp;gt; VS -&amp;amp;amp;amp;gt; RS -&amp;amp;a
2018-08-14 09:41:30
358
原创 Lvs的DR工作模式原理及部署
1、Lvs的DR工作模式原理:用直接路由技术实现虚拟服务器 DR模式是通过改写请求报文的目的MAC地址,将请求发送给真实服务器,服务器将响应消息直接发送给客户端 &amp;lt;1&amp;gt;通过在调度器上修改数据包的目的MAC地址实现转发,注意源地址仍然是CIP,目的地址仍然是VIP地址; &amp;lt;2&amp;gt;请求的报文经过调度器,而服务器响应处理后的报文无需经过调度器,因此并发访问量大时使用效..
2018-08-14 09:05:32
1484
原创 varnish的工作原理、配置、负载均衡及定点清除
1、varnish的工作过程 处理过程大致分为如下几个步骤: (1)Receive状态,也就是请求处理的入口状态,根据VCL规则判断该请求应该是Pass或 Pipe,或者进入Lookup(本地查询)。 (2)Lookup状态,进入此状态后,会在hash表中查找数据,若找到,则进入Hit状态,否则进 入miss状态。 (3)Pass状态,在此状态下,会进入后端请求,即进入fetch...
2018-08-13 17:49:36
626
原创 linux虚拟机封装
1、虚拟机封装 虚拟化 kvm(cpu,mem)+qemu(disk,net,i/o) 而virt-manager是虚拟机管理器,libvirtd是管理接口 当我们关闭libvirtd管理接口时,无法正常管理虚拟机,但虚拟机仍可使用 [root@foundation29 images]# systemctl stop libvirtd.service [root@foundation...
2018-08-13 16:52:00
361
原创 Linux下脚本中的运算和shell脚本实例
实验1:显示10s倒计时[root@desktop mnt]# vim time.sh#!/bin/bashfor ((num=10;num&gt;0;num--))doecho -n " Time $num "echo -ne "\r \r"sleep 1done#测试:实验2:显示1分10s倒计时[root@desktop mnt]# vim
2018-06-28 11:29:36
641
原创 Linux下的脚本中的函数及常用语句
1、脚本中的函数变量:利用一串字符表示一个值函数:利用一串字符表示一个动作简化脚本内容,提高可读性,且可以循环调用#实验:使用函数循环建立、删除用户,exit退出[root@desktop mnt]# vim user_ctrl.sh#!/bin/bashACTION_ADD(){[ &quot;$1&quot; = add ]&amp;amp;&amp;amp
2018-06-21 15:02:08
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人