Welcome 微信登录

首页 / 数据库 / MySQL

高性能的MySQL(5)索引策略

高性能的MySQL(5)索引策略

高性能的MySQL(5)索引策略2014-06-23一、索引的优点1、索引可以大大减少服务器需要扫描的数据量2、索引可以帮助服务器避免排序和临时表。3、索引可以将随即I/O变为顺序I/O二、索引策略1、独立的列独立的列是指索引列不能是表达式的一部分,也不能是函数参数。例如:一个有500W条记录的表,id是主键。所以要始终将索引列单独放在比较符号的一侧。2、前缀索引和索引选择性对于比较大的列,通常可以索引开始的部分字符,这样可以节约索引空间,提高索引率。但是...
高性能的MySQL(5)索引策略一聚簇索引

高性能的MySQL(5)索引策略一聚簇索引

高性能的MySQL(5)索引策略一聚簇索引2014-06-23聚簇索引,并不是一种单独的索引类型,而是一种数据存储方式。InnoDB的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行信息。因为无法把数据行存放在两个不同的地方,所以一个表只能有一个聚簇索引(不过可以通过覆盖索引来模拟,稍后再介绍)。这里主要讨论InnoDB引擎,InnoDB通过主键聚集数据,如果没有主键会选择一个非空的唯一索引,如果还没有,InnoDB会隐式定义一个主键来作为聚簇索...
高性能的MySQL(5)索引策略-覆盖索引与索引排序

高性能的MySQL(5)索引策略-覆盖索引与索引排序

高性能的MySQL(5)索引策略-覆盖索引与索引排序2014-06-23一、覆盖索引索引是一种查找数据的高效方式,但是MySQL也可以使用索引来直接获取列的数据,这样就不再需要读取数据行。如果索引的叶子节点中已经包含要查询的数据,那么还有什么必要回表查询呢?如果一个索引包含或者说覆盖所有需要查询的字段的值,我们就称之为“覆盖索引”。覆盖索引的好处:1、索引条目通常远小于数据行大小,所以如果只需要读取索引,就极大的减少数据访问量。这对...
高性能的MySQL(5)索引策略一压缩,冗余,重复,索引和锁

高性能的MySQL(5)索引策略一压缩,冗余,重复,索引和锁

高性能的MySQL(5)索引策略一压缩,冗余,重复,索引和锁2014-06-23一、压缩索引MyISAM使用前缀压缩来减少索引的大小,默认只压缩字符串,但是通过设置也可以对整数做压缩。压缩可以使用更少的空间,代价是某些操作可能更慢。特别是倒序的查询,测试表明,对于CPU密集型的应用,查询会很慢,特别是倒序。对于I/O密集型应用,查询可能会不错。可以在CREATE TABLE的语句中指定PACK_KEYS参数来指定索引压缩方式。二、冗余和重复索引重复索引:指...
高性能的MySQL(5)索引策略-索引案例分析

高性能的MySQL(5)索引策略-索引案例分析

高性能的MySQL(5)索引策略-索引案例分析2014-06-23理解索引最好的办法是结合实例,接下来分析一个例子。假设要设计一个在线约会网站,用户信息表有很多列,包括国家,地区,城市,性别,眼睛颜色等等。网站必须支持上面的各种组合来搜索用户,包括根据用户的最后在线时间,评分等进行排序的限制。需要考虑是需要索引来排序还是先检索数据再排序,因为使用索引排序会严格限制索引和查询的设计。如果MySQL使用了某个索引的范围查询,也就无法再使用另一个索引或者是该索引...
高性能的MySQL(5)索引策略-索引和表的维护

高性能的MySQL(5)索引策略-索引和表的维护

高性能的MySQL(5)索引策略-索引和表的维护2014-06-23维护表有三个主要的目的:1、找到并修复损坏的表。对于MyISAM存储引擎来说,表损坏通常是系统崩溃导致的。其他的引擎也会由于硬件的问题,MySQL本身的缺陷或者操作系统的问题导致索引的损坏。损坏的索引,会导致查询返回错误的结果或者莫须有的主键冲突等问题,严重时还会导致数据库崩溃。这类情况,可以尝试check table来检查是否发生了表损坏,有些存储引擎不支持这个命令。可以使用repair...
Mysql分区技术的理论

Mysql分区技术的理论

Mysql分区技术的理论2014-06-23一、基本理论在mysql大数据处理上,水平分表技术是很常用的,但是分表技术带来了PHP处理的很大开销,为了解决这个弊端Mysql5.1以后以插件的方式增加了一个新的技术--分区技术。分区技术是在逻辑层进行的水平分表,对于应用程序而言还是一张表,Mysql5.1有4种分区类型1、RANGE:基于属于一个给定连续区间的列值,把多行分配给分区。2、LIST :类似于RANGE分区,区别在于LIST分区是基于列值匹配一个...
mysql主从+keepalived线上恢复解决方案

mysql主从+keepalived线上恢复解决方案

mysql主从+keepalived线上恢复解决方案2014-06-23最近一个项目需要做一个mysql+keepalived高可用主从同步,配起来当然轻车熟路,但想到如何在主库挂掉,从库接管后,以最快的速度恢复数据,并让主库重新接管,所以整理了下思路,编写了如下脚本,供大家参考mysql主从,以及keepalived高可用配置本博传送门:http://showerlee.blog.51cto.com/2047005/1220801http://showe...
高性能的MySQL(6)查询慢与重构查询

高性能的MySQL(6)查询慢与重构查询

高性能的MySQL(6)查询慢与重构查询2014-06-23只有好的库表结构、合理的索引还不够,我们还需要合理的设计查询,齐头并进,一个不少才能充分发挥MySQL的优势。一、查询为什么会慢?每一个查询由一系列的子任务组成,每个子任务都会消耗一定的时间。这个我们在之前的单个查询分析时已经简单介绍了,当然还有额外的因素,比方说包括网络,CPU计算,统计信息,执行计划,锁等待等操作,或者底层引擎在调用内存,CPU操作,I/O操作等上的消耗时间。优化查询的目的就是...
mysql双机热备以及amoeba读写分离实验

mysql双机热备以及amoeba读写分离实验

mysql双机热备以及amoeba读写分离实验2014-06-23Mysql读写分离是为了提高网站的访问速度,提高数据库的并发负载能力。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离来提升数据库的并发负载能力, 这样的方案来进行部署与实施的。注意:先做主从复制,再度读写分离。MySQL主...
mysql热备份方法

mysql热备份方法

mysql热备份方法2014-06-23mysql 热备在运维中需定期备份mysql,为崩溃后的恢复数据做准备。一般分为冷备和热备,冷备就是停掉mysql服务,直接cp文件,但是在生产环境中,很 少有机会这样,一般都是在mysql提供服务的时候就进行备份,因此这牵扯到数据一致性的问题。所以,在MyISAM存储引擎下,我们的思路就是:锁表 –>备份–>解锁# 进入mysql环境 锁表root@mysql : test>...
JC-MySQL权限详解

JC-MySQL权限详解

JC-MySQL权限详解2014-06-23MySQL数据库已经应用到很多互联网公司,mysql权限管理非常重要,合理规划好mysql数据库权限,对数据库的安全和使用是非常有好处的.一个好的规范和习惯,做任何事也不会出现大问题.下面是mysql权限规划授权的语句:授权jc用户,查询、插入、更新、删除 本机testdb数据库中所有表数据的权利的授权方法如下:grant select on testdb.* to jc@’localhost&rsq...
MySQL云数据库服务的架构探索

MySQL云数据库服务的架构探索

MySQL云数据库服务的架构探索2014-06-23 csdn 曹伟MySQL作为一种低成本、高性能、可靠性良好而且开源的数据库产品,在互联网企业中应用非常广泛。例如,淘宝网就有数千台MySQL服务器。虽然近两年来NoSQL的发展很快,新产品层出不穷,但在业务中应用NoSQL对开发者来说要求比较高,而MySQL拥有成熟的中间件、运维工具, 已经形成一个良性的生态圈。因此,在现阶段的应用中仍然以MySQL为主,NoSQL为辅。在过去一年里,我们在MySQL托...
MySQL基于SSL的半同步复制

MySQL基于SSL的半同步复制

MySQL基于SSL的半同步复制2014-06-23MySQL的主从复制应用场景非常多,默认的MySQL复制是基于异步且明文传输的,也就是说,速度快,但是从服务器的数据会有着一定的滞后性,明文也就意味着数据传输的不安全。因此笔者这里构建一个简单的基于加密并半同步的主从MySQL,当然由于其半同步的特性,主服务器的写操作速度必会有所降低。究竟如何选择,这取决于场景需要了。实验环境:RHEL5.8 MySQL5.5.28192.168.88.21 mas...
mysql dba系统学习(1)mysql各版本编译安装

mysql dba系统学习(1)mysql各版本编译安装

mysql dba系统学习(1)mysql各版本编译安装2014-06-25MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商...
mysql dba系统学习(2)了解mysql的源码目录及源文件

mysql dba系统学习(2)了解mysql的源码目录及源文件

mysql dba系统学习(2)了解mysql的源码目录及源文件2014-06-25了解mysql的源码目录包括客户端代码,服务端代码,测试工具和其他库文件Mysql源码结构Bdb 伯克利DB表引擎BUILD 构建工程的脚本Client 客户端Cmd-line-utils 命令行工具Config 构建工程所需的一些文件Dbug Fred Fish的调试库Docs 文档文件夹Extra 一些相对独立的次要的工具Heap HEAP表引擎Include 头文件I...
mysql dba系统学习(3)mysql的启动停止

mysql dba系统学习(3)mysql的启动停止

mysql dba系统学习(3)mysql的启动停止2014-06-25mysql的启动有很多方法,我们将来一一讨论一,mysqldmysqld是mysql的服务mysqld这种方式启动的时候会读取my.cnf文件中的[mysqld]和[server]组group(每一个组都有[]来分割)一般的,我们通过这种方式手动的调用mysqld,如果不是出去调试的目的,我们一般都不这样做。因为这种方式会使错误日志直接从终端输出,而不是记录在错误日志文件中,这样,如果...
<< 191 192 193 194 195 196 197 198 199 200 >>