随笔分类 -  Mysql

摘要:如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 ⑵ 阅读全文
posted @ 2017-11-02 18:11 lpfuture 阅读(399) 评论(0) 推荐(0) 编辑
摘要:HandlerSocket的原理 HandlerSocket的应用场景: MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产品,比如Redis/MongoDB等。不可否认,在做一些简单查询(尤其是PK查询)的时候,很多NoS 阅读全文
posted @ 2017-06-09 17:11 lpfuture 阅读(2908) 评论(0) 推荐(1) 编辑
摘要:为使用fsync方式、指定O_DSYNC为使用O_SYNC方式。由于这在某些 Unix 环境下还有些问题所以在 ‘data’ versions 并没有被使用。 介绍: InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELE 阅读全文
posted @ 2016-08-17 14:25 lpfuture 阅读(262) 评论(0) 推荐(0) 编辑
摘要:SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用, 阅读全文
posted @ 2016-08-17 11:50 lpfuture 阅读(271) 评论(0) 推荐(0) 编辑
摘要:优化数据类型提高性能的主要原理在于以下几个方面:1. 通过选用更“小”的数据类型减少存储空间,使查询相同数据需要的 IO 资源降低;2. 通过合适的数据类型加速数据的比较;下面我们还是通过分析一些常用数据类型的数据存储格式和长度来看看哪些数据类型可以在优化中利用上吧。数字日期类型我们先来看看存放长度 阅读全文
posted @ 2016-08-16 15:58 lpfuture 阅读(199) 评论(0) 推荐(0) 编辑
摘要:PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用。其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的。下面举例说说。mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具。通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提 阅读全文
posted @ 2016-08-15 18:39 lpfuture 阅读(598) 评论(0) 推荐(0) 编辑
摘要:建立索引的原则: 1:查询频繁 2:区分度高 3:长度小 4: 尽量能覆盖常用查询字段. 索引长度:1: 索引越短, 重复度越高,区分度越小, 索引效果越不好2: 索引越长, 重复度越低,区分度越高, 索引效果越好,但带来的影响也越大--索引文件越大,增删改变慢,并且影响查询速度. 所以, 要在 区 阅读全文
posted @ 2016-08-15 15:23 lpfuture 阅读(1424) 评论(0) 推荐(0) 编辑
摘要:前言 为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一。本章将对MySQL中两种使用最为频繁的存储引擎MyISAM和Innodb各自的锁定机制进行较为详细的分析。 MySQL锁定机 阅读全文
posted @ 2016-08-15 15:08 lpfuture 阅读(254) 评论(0) 推荐(0) 编辑
摘要:写法不一样而功能完全相同的两条 SQL 的在性能方面的差异。示例一需求:取出某个 group(假设 id 为 100)下的用户编号(id),用户昵称(nick_name)、用户性别( sexuality ) 、 用 户 签 名 ( sign ) 和 用 户 生 日 ( birthday ) , 并 阅读全文
posted @ 2016-08-15 12:19 lpfuture 阅读(1241) 评论(0) 推荐(0) 编辑
摘要:当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小。这是因为删 除操作后在数据文件中留下碎片所致。optimize table 可以去除删除操作后留下的数据文件碎片,减小文件尺寸,加快未来的读写操作。您只要在做完批量删除,或定期(如 每一两个月)进行一次数据表优化操作即可。 OPTIM 阅读全文
posted @ 2016-08-15 11:33 lpfuture 阅读(6457) 评论(0) 推荐(0) 编辑
摘要:想法非常简单,在标准的B-Tree索引上创建一个伪哈希索引。它和真正的哈希索引不是一回事,因为它还是使用B-Tree索引进行查找。然而,它将会使用键的哈希值进行查找,而不是键自身。你所要做的事情就是在where子句中手动地定义哈希函数。 例子:URL查找。 URL通常会导致B-Tree索引变大,因为 阅读全文
posted @ 2016-08-15 10:41 lpfuture 阅读(1637) 评论(0) 推荐(0) 编辑
摘要:mysql大数据量使用limit分页,随着页码的增大,查询效率越低下。 测试实验 1. 直接用limit start, count分页语句, 也是我程序中用的方法: select * from product limit start, count当起始页较小时,查询没有性能问题,我们分别看下从10, 阅读全文
posted @ 2016-08-15 10:38 lpfuture 阅读(28453) 评论(5) 推荐(8) 编辑
摘要:一、逻辑备份 1.生成insert语句 使用mysqldump 为了保证数据库中数据的一致性,有以下两种办法可以做到 --single-transaction 对于事务支持的存储引擎,如 Innodb 或者 BDB 等 ,将整个备份过程控制在同一个事务中,来达到备份数据的一致性和完整性 --lock 阅读全文
posted @ 2016-08-12 14:45 lpfuture 阅读(290) 评论(0) 推荐(0) 编辑
摘要:MySQL 数据库不仅提供了数据库的服务器端应用程序,同时还提供了大量的客户端工具程序,如 mysql,mysqladmin,mysqldump 等等,都是大家所熟悉的。虽然有些人对这些工具的功能都已经比较了解了,但是真正能将这些工具程序物尽其用的人可能并不是太多, 或者知道的不全,也可能并不完全了 阅读全文
posted @ 2016-08-11 18:23 lpfuture 阅读(1854) 评论(0) 推荐(0) 编辑
摘要:整体架构图 访问控制图 阅读全文
posted @ 2016-08-11 15:39 lpfuture 阅读(415) 评论(0) 推荐(0) 编辑
摘要:问题: create table A ( id varchar(64) primary key, ver int, ... ) 我的表有几个很长的字段varchar(3000) 在id、ver上有联合索引 10000条数据 为什么select id from A order by id特别慢,而se 阅读全文
posted @ 2016-08-10 14:36 lpfuture 阅读(300) 评论(0) 推荐(0) 编辑
摘要:通过explain可以知道mysql是如何处理语句,分析出查询或是表结构的性能瓶颈。通过expalin可以得到: 1. 表的读取顺序 2.表的读取操作的操作类型 3.哪些索引可以使用 4. 哪些索引被实际使用 5.表之间的引用 6.每张表有多少行被优化器查询 explain显示字段 1. id :语 阅读全文
posted @ 2016-08-10 14:16 lpfuture 阅读(2462) 评论(0) 推荐(0) 编辑
摘要:MyISAM支持全文索引(FULLTEXT)、压缩索引,InnoDB不支持 InnoDB支持事务,MyISAM不支持 MyISAM顺序储存数据,索引叶子节点保存对应数据行地址,辅助索引很主键索引相差无几;InnoDB主键节点同时保存数据行(聚簇索引),其他辅助索引保存的是主键索引的值 MyISAM键 阅读全文
posted @ 2016-08-10 14:12 lpfuture 阅读(259) 评论(0) 推荐(0) 编辑
摘要:mysql Query Cache 默认为打开。从某种程度可以提高查询的效果,但是未必是最优的解决方案,如果有的大量的修改和查询时,由于修改造成的cache失效,会给服务器造成很大的开销,可以通过query_cache_type【0(OFF)1(ON)2(DEMAND)】来控制缓存的开关. 需要注意 阅读全文
posted @ 2016-08-09 09:41 lpfuture 阅读(12480) 评论(0) 推荐(0) 编辑
摘要:假设某个表有一个联合索引(c1,c2,c3,c4)一下——只能使用该联合索引的c1,c2,c3部分 A where c1=x and c2=x and c4>x and c3=xB where c1=x and c2=x and c4=x order by c3C where c1=x and c4 阅读全文
posted @ 2016-08-08 09:59 lpfuture 阅读(521) 评论(0) 推荐(0) 编辑