首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL 索引的底层逻辑

索引的本质其实就是一种数据结构。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找,这种复杂度为 O(n) 的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如二分查找、二叉树查找等。如果稍微分析一下会发现,每种查找算法都只能应用于特定的数据结构之上,例如二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织),所以,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。

01

MySQL 索引的底层逻辑

索引的本质其实就是一种数据结构。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找,这种复杂度为 O(n) 的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如二分查找、二叉树查找等。如果稍微分析一下会发现,每种查找算法都只能应用于特定的数据结构之上,例如二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织),所以,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。

01

开源云平台 CloudStack 4.1.0 安装以及故障处理

CloudStack是一个功能强大、UI友好的开源云(IaaS)计算解决方案。自Ctrix将CloudStack捐献给 apache 后,一直持续高速发展,其社区活跃度已经渐渐赶上风头一时无两的另一开源云OpenStack平台。 CloudStack拥有所有开源云平台中最为友善的管理界面,而且其天生的多语种支持会使中文用户感觉很爽。 今天我们来详细介绍一下CloudStack最新版本 4.1.0 在 CentOS 6.4 下的安装部署的步骤。鉴于网上文章一大抄,很多内容都是装来装去一大堆东西,看官们一会就晕了,根本不了解为什么装这些程序,装来是干什么的。这回呢,我会把每一步说明尽可能详细一些,外加我的经验和理解(不少心得是重装了10次以上后得出的),希望能让后来者可以少走些弯路。 CloudStack可分为管理节点安装和受控节点安装。 管理节点安装无特殊要求,完全可以安装到虚拟机环境下。 受控节点因要创建虚拟机,故需要硬件虚拟化支持,推荐使用独立主机安装。CloudStack支持多种虚拟化方案,包括:KVM、Xen、XenServer、VMware。因XenServer、VMware已包含有强大的虚拟机管理功能,CloudStack可以直接与其通信调用其管理接口,因此这两种受控机环境下,无需安装任何软件。但KVM、Xen的受控机必须安装 CloudStack-Agent 之后,才能被CloudStack管理。 本篇我们主要来讲解管理节点搭建步骤: 一、前期准备 1、配置网卡,确保主机能上网 因我们要使用网络安装方式,所以要首先保证你的服务器可以正常联网。 1    pingwww.baidu.com 2、设置主机名称 CloudStack运行时需要获取本机名称,如无法正确获取可能导致服务无法正常启动并报一大堆的错。 运行以下命令检查: 1    hostname--fqdn 如无正常返回,请编辑 /etc/hosts 文件,添加主机ip对应的名称。 1    如: 2    192.168.19.135  manage.cloudstack.com vi /etc/sysconfig/network 将 HOSTNAME= 改为同你刚设置的一样。 编辑完后立即生效。如果还不成的话,重启下服务器应该就会好了。 3、配置时间同步 管理节点会通过各种协议与受控节点通讯,为了确保安全,受控节点接到命令后会进行一系列的校验,如果两机的时间不同步的话,会导致命令拒绝执行。 最简单的办法就是,所有服务器都安装 ntp实现时间的自动同步。 1    yuminstallntp 4、修改Linux安全设置 服务器上的SELinux会拦截CloudStack的一些命令,导致CloudStack操作失败,因此启动CloudStack前需要对SELinux进行设置。 vi /etc/selinux/config 1    SELINUX=permissive 以上修改需重启服务器才能生效,为使设置立即生效可使用下边的命令 1    setenforce permissive 二、更新 yum 仓库 默认情况下,CentOS的软件源中没有收录最新版本CloudStack,为了能顺利安装,我们需要手工指定软件源。 新建 /etc/yum.repos.d/cloudstack.repo 文件,内容为: 1    [cloudstack] 2    name=cloudstack 3    baseurl=http://cloudstack.apt-get.eu/rhel/4.1/ 4    enabled=1 5    gpgcheck=0 三、安装管理节点 设置好源以后,我们就可以直接使用 yum安装了,非常简单方便。 安装管理节点的命令为: 1    yuminstallcloud-client 如果你的CentOS 是最小化安装的话,将需要安装 160 兆以上的东东,请耐心等待哈... 四、配置数据库 CloudStack使用mysql管理数据,但安装cloud-client时没有包含mysql,这时需要我们手工安装,并导入数据。这是可以理解的,因为数据库可以被安装到其它机器上。 1    yuminstallmysql-server 默认的,mysql有连接数限制,无法满足CloudStack管理节点的要求,需要手工设定。 vi /etc/my.cnf 增加以下内容: 1    innodb_rollback_on_timeout=1 2    innodb_lock_wait_timeout=600 3    max_connections=350 4    log-bin=mysql-bin 5    binlog-format='ROW' 注:如果没改的话会发生什么现象我没有尝试,不

01
领券