mysql数据库
文章平均质量分 82
crazzy_lp
这个作者很懒,什么都没留下…
展开
-
Linux安装mysql数据库
1、环境查看与准备:①查看centos在安装的时候,是否已经mysql服务。由于centos默认安装的mysql有时候版本太低,而且也不符合我们生产环境的要求,一般我们都自己安装。查看mysql是否已经安装:rpm -qa |grep mysql;如果发现有(mysql-server-version),则说明centos已经安装mysql了,这时需要我们删除掉默认安装的版本,指令:rpm ...原创 2014-07-20 14:15:48 · 82 阅读 · 0 评论 -
mysql中SQL执行过程详解
mysql执行一个查询的过程,到底做了些什么:客户端发送一条查询给服务器;服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。服务器段进行SQL解析、预处理,在优化器生成对应的执行计划;mysql根据优化器生成的执行计划,调用存储引擎的API来执行查询。将结果返回给客户端。 实际上mysql执行的每一步都比较复杂,具...原创 2014-11-06 11:26:02 · 2449 阅读 · 0 评论 -
mysql分区详解
mysql从5.0版本开始引入分区,对用户来说,分区表是一个独立的逻辑表,但是底层由多个物理字表组成。实现分区的代码实际上是对一组底层表的句柄对象的封装。对分区表的请求,都会通过句柄对象转化成为存储引擎的接口调用。索引分区对于SQL层来说是一个完全封装底层实现的黑盒子,对于应用是透明的,但是从底层的文件系统很容易发现,每个分区表都有一个使用#分割命名的表文件。1、分区表的实现 ...原创 2014-11-12 16:31:30 · 150 阅读 · 0 评论 -
认识mysql字符集
z字符集是指一种从二进制编码到某类字符符号的映射;“校对”是指一组用于某个字符集的排序规则。mysql对各种字符集的支持都非常完善,但是这也带来了一定的复杂性。一、mysql如何使用字符集 每种字符集都可能有多重校对规则,并且都有一个默认的校对规则。每个校对规则都是针对某个特定的字符集的,和其他的字符集没有关系。校对规则和字符集总是一起使用的。mysql有很多选项用于控制...原创 2014-11-13 17:05:33 · 201 阅读 · 0 评论 -
mysql全文索引
全文索引可以支持各种字符内容的搜索,也支持自然语言搜索和布尔搜索。当前只有MyISAM引擎支持全文索引。但是MyISAM对全文索引的支持右很多限制,例如表级别锁对性能的影响、数据文件的崩溃、崩溃后的恢复等,这使得MyISAM的全文索引对于很多应用场景并不合适。 MyISAM的全文索引作用对象是一个“全文集合”,这可能是某个数据表的一列,也可能是多个列。具体的,对数据表的某一条...原创 2014-11-14 14:24:16 · 337 阅读 · 0 评论 -
mysql配置(my.cnf)
mysql编译的默认配置并不都是靠谱的,虽然其大部分都比较合适。它们被设计成不要使用大量的资源,因为mysql的使用目标是非常灵活的,它并没有假设自己是服务器上唯一的应用。默认情况下,mysql只是使用恰好足够的资源来启动,运行一些少量数据的简单查询。如果数据量比较大后,就一定需要自己配置mysql的配置。 在配置的时候建议:不要使用mysql发行版中提供的实例配置文件,也不...原创 2014-11-17 16:19:33 · 128 阅读 · 0 评论 -
mysql主从数据库工作原理和配置
复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台备库上,备库本身也可以被配置成另外一台服务器的主库。主库和备库之间可以有多种不同的组合方式。 mysql支持两种复制方式:基于行的复制和基于语句的复制。基于语句的复制在mysql3.23版本中就存在,而基于行的复制方式在5.1版本中才加进来。这两种方式都是通过在主库上记录二进制日志、在备库...原创 2014-11-18 15:32:41 · 269 阅读 · 0 评论 -
mysql恢复和备份
一、在这里先介绍一下LVM备份mysql数据库的优点:1、在大多数情况下,这种方式几乎算得上是热备。它无需关闭服务,只需要设置只读或者类似这样的限制。2、支持所有基于本地磁盘的存储引擎,比如MYISAM、InnoDB和BDB,还支持Solid、PrimeXT和Faction。3、备份速度最快,因为你只需要拷贝相关的二进制数据文件即可。4、由于只是简单的拷贝文件,因此对服务器开销...原创 2014-11-18 18:03:40 · 205 阅读 · 0 评论 -
MyISAM锁表解析及应对方法
最近服务器上经常出现mysql进程占CPU100%的情况,使用show processlist命令后,看到出现了很多状态为LOCKED的sql。使用show status like 'table%'检查Table_locks_immediate和Table_locks_waited,发现Table_locks_waited偏 大。出问题的表是MyISAM,分析大概是MyISAM的锁表导...原创 2014-11-18 18:34:22 · 258 阅读 · 0 评论 -
mysql查询性能优化
在编写快速的查询之前,需要清楚一点,真正重要是影响时间。如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,那么减少子任务的执行次数,要么让子任务运行得更快。 通常来说,查询的生命周期大致可以按照顺序来看:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户...原创 2014-11-05 14:26:08 · 193 阅读 · 0 评论 -
了解sql执行顺序
下面是mysql的sql执行步骤(标准sql肯定相同,只是有一些mysql的扩展)。(8)select (9)distinct <slect_list>(1)from <left_table>(3)<join_type>join<right_table>(2)on<join_condition>(4)where&l...原创 2014-10-27 10:36:28 · 104 阅读 · 0 评论 -
维护索引和表
即使用正确的类型创建了表并加上了合适的索引,工作也没有结束,还需要维护表和索引来确保他们都正常工作。维护表有三个主要的目的:找到并修复损坏的表,维护准确的索引统计信息,减少碎片。一、找到并修复损坏的表 表损坏是很糟糕的事情。对于MySQL存储引擎,表损坏通常是系统崩溃导致的。其他引擎也会由于硬件问题、MySQL本身的缺陷或者操作系统的问题导致索引损坏。损坏的索引会导致查询...原创 2014-09-26 10:17:45 · 147 阅读 · 0 评论 -
认识缓存之mysql查询缓存
mysql的query cache用来缓存和query有关的数据。具体来说Query cache有其特殊的业务场景,它不像其他的数据库产品,缓存查询语句的执行计划等信息;而query cache则是缓存客户端提交给mysql的select语句以及语句的结果集,就是将select语句和语句的结果做hash映射关系后保存在一定的内存区域内。一、工作原理 查询缓存的工作原理,...原创 2014-08-05 15:43:20 · 127 阅读 · 0 评论 -
mysql架构
一、MySQL逻辑架构最上层的服务并不是MySQL所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等等。第二层架构集中了MySQL的核心功能,包括查询解析、分析、优化、缓存以及所有的内置函数(如日期、时间、数据和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。第三层包含了存储引擎。存储引擎负责Mysq...原创 2014-08-25 14:45:42 · 129 阅读 · 0 评论 -
mysql事务和多版本并发控制详解
一、mysql事务 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎可以成功执行该组全部语句,那么就执行该组语句。如果其中有任何一条语句不能执行,那么所有的语句都不会执行。也就是说,事务内的语句要么全部执行成功,要么全部执行失败。1、事务的ACID特性 事务需要系统严格的支持ACID特性,ACID表示原子性、一致性、隔离性和持久性。一个运行良好的事...原创 2014-08-29 11:06:09 · 277 阅读 · 0 评论 -
mysql数据库设计
良好的逻辑设计和物理设计时高性能的基石,应该根据系统将要执行的查询语句来设计schema,这往往需要权衡各种因素。例如:发范式的设计可以加速某些类型的查询,但同时可能使另一些类型的查询变慢。比如添加计数表和汇总表是一种很好的查询优化查询的方式,但这些表的维护成本可能会很高。一、数据类型的选择优化 mysql支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。下...原创 2014-09-01 14:29:57 · 405 阅读 · 0 评论 -
详解MySQL索引类型和索引优点
索引是存储引擎用于快速查找记录的一种数据结构。因此良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。在数据量较小且负载较低时,不恰当的索引对性能的影响可能不明显,但当数据量逐渐增大时,性能则会急剧下降。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高几个数量级,“最优”的索引有时比一个“好的”索引性能要好两个数量级。 索引可以...原创 2014-09-05 17:41:56 · 146 阅读 · 0 评论 -
详解聚簇索引
一、聚族索引的构造 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。具体的细节依赖于其实现方式,但InnoDB的聚族索引实际上在同一个结构中保存了B-Tree索引和数据行。当表有聚族索引时,它的数据行存放在索引的叶子页中。术语“聚族”表示数据行和相邻的键值紧凑的存储在一起。因为无法同时把数据行放在两个不同的地方,所以一个表只能有一个聚族索引。 因为是存储引擎负责实现...原创 2014-09-09 11:29:22 · 1175 阅读 · 3 评论 -
详解覆盖索引
通常大家都会根据查询的where条件来创建合适的索引,不过这只是索引优化的一个方面。索引确实是一种查找数据的高效方式,但是mysql也可以使用索引来直接获取列的数据,这样就不再需要读取数据行。如果索引的叶子节点中已经包含要查询的数据,那么还有什么必要再回表查询呢?如果一个索引包含或者说覆盖所有需要查询的字段的值,我们就称之为“覆盖索引”。一、覆盖索引的优点 覆盖索引是非常...原创 2014-09-09 16:28:35 · 1411 阅读 · 0 评论 -
创建高性能索引策略
高效的选择和使用索引有很多方式,其中有些是针对特殊案例的优化方法,有些则是针对特定行为的优化。使用哪个索引,以及如何评估选择不同索引的性能影响的技巧。一、独立的列 通常会看到一些查询不当地使用索引,或者使得MySQL无法使用已有的索引。如果查询中的列不是独立的,则MySQL就不会使用索引。“独立的列”是指索引列不能是表达式的一部分,也不能是函数的参数。例如: s...原创 2014-09-16 11:14:38 · 89 阅读 · 0 评论 -
大字段如何对查询产生影响
一些应用,在表结构的设计上使用了text或者blob的字段;其中一个应用,对blob字段的依赖非常的严重,查询和更新的频率也是非常的高,单表的存储空间已经达到了近100G,这个时候,应用其实已经被数据库绑死了,任何应用或者查询逻辑的变更几乎成为不可能; 为了清楚大字段对性能的影响,我们必须要知道innodb存储引擎在底层对行的处理方式:在5.1中,innodb存储引擎的...原创 2014-11-18 18:46:10 · 1035 阅读 · 0 评论