mysql数据库
文章平均质量分 65
swallowflytop
一位码农,一位全栈工程师
展开
-
学习笔记--mysql常用数据类型总结
Mysql数据类型包括:整数类型,实数类型,字符串类型,日期时间类型,位类型,特殊类型。整数类型 包括tinyint, smallint, mediumint, int, bigint,对应存储空间分别为8,16,24,32,64位存储空间,长度上来说,tinyint对应java中的byte,8位;smallint对应java中short,16位;int与java中int对应,32位;bigin原创 2016-11-21 21:00:35 · 364 阅读 · 0 评论 -
学习笔记--mysql索引(三) 独立的列,前缀索引和索引的选择性
索引可以提高查询效率,但需要正确的索引策略才能发挥效果(测试中的示例数据库为mysql的sakila数据库,链接:http://dev.mysql.com/doc/sakila/en/)。独立的列,索引不能是表达式的一部分。比如: EXPLAIN SELECT * from sakila.actor WHERE actor_id=5; 在sakila.actor表中,actor_id是主键,有原创 2016-12-26 21:33:33 · 1395 阅读 · 0 评论 -
学习笔记--mysql索引(二) B树索引的介绍和限制,好索引的标准
Mysql的索引使用最多是B树索引,使用B树数据结构来存储数据,大多数mysql引擎都支持这种索引。但每种存储引擎实现的方式并不相同,具体的数据结构也不一样,比如InnoDB使用的是B+树,在索引中存储数据和原数据相同,并且根据主键引用被索引的行。而MyISAM则使用前缀压缩技术,索引中存储的数据是压缩过的,根据数据物理位置引用被索引的行。 B树的抽象表示: 理解一下这张图,原创 2016-12-22 20:57:29 · 481 阅读 · 0 评论 -
学习笔记--mysql索引(一) 索引使用,index,key,primary key, unique
所有MySQL列类型都可以被索引,对相关列使用索引是ᨀ高SELECT操作性能的最佳途 径。根据存储引擎可以定义每个表的最大索引数和最大索引长度,MyISAM和InnoDB 存储引擎的表默认创建的都是BTREE索引,支持前缀索引,即对索引字段的前N个字符创建索引。MyISAM存储引擎支持FULLTEXT索引,并且只限于CHAR、VARCHAR和TEXT列,默认情况下,MEMORY存储引擎使用HASH原创 2016-12-19 21:40:04 · 5606 阅读 · 0 评论 -
学习笔记--mysql explain
在select关键字里增加explain关键字,mysql会在查询上设置一个标记,这时执行查询时返回执行计划中每一步信息,而不会直接返回。这是调优分析SQL语句的一个重要手段。对一个表的查询,explain会返回一行信息,如果对多个表连接查询则会返回多行信息explain 有2个变种,一是explain extended,效果是可以通过紧接其后的运行show warnings看到这个生成的语句。而是原创 2016-12-28 22:00:30 · 375 阅读 · 0 评论 -
理解事务的ACID和隔离级别
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit),事务是一个数据库概念。但我理解数据库也是一款软件,只是遵循了数据库SQL标准,理解事务,先看看数据库软件的逻辑结构,这是mysql的逻辑结构: 可见mysql支持多客户端访问,对应到mysql里面就是多线程(通常一个客户端对应mysql内部一个处理线程),底层的存储引擎就是负责向持久化介质(硬盘,存原创 2016-11-13 15:50:12 · 2956 阅读 · 2 评论 -
学习笔记--mysql索引(四) 多列索引
多列索引有两个意思,一个是在多个列上建立一个索引,另一个意思是在多个列上分别建立索引。比较直观能够想到,如果是在多个列上建立一个索引,那么如果where条件里正好又是这些列,那么将获得较好的性能。如果分别建立索引,where中又有多个分别建立的索引的列,那mysql优化器将如何处理呢?EXPLAIN SELECT sakila.actor.first_name, sakila.actor.last原创 2017-01-15 11:38:41 · 396 阅读 · 0 评论 -
学习笔记--mysql索引(五) 聚簇索引和覆盖索引
聚簇索引并不是一种单独的索引类型,而是一种数据的存储方式。InnoDB的聚簇索引实际在同一个结构中保存了B树索引和数据行。也就是说,当表有聚簇索引时,它的数据行实际存放在索引的叶子页中。显然,由于无法把数据和放在两个不同的地方,一个表只能有一个聚簇索引。对于InnoDB来说,默认使用主键作为聚簇索引,所以最好有一个与业务无关且自增的主键,这样会有比较好的插入和删除性能,也就是代理主键。使用业务相关的原创 2017-01-15 12:15:49 · 635 阅读 · 0 评论