mysql 索引机制
Chapter 4. Indexes
索引有助于MySQL在浩如烟海的数据中迅速找到和取得正确的记录。
4.1 Indexing Basics
4.1.1 Index Concepts
索引是按照某种规则排序的。索引也就是牺牲一些空间和cpu的开销来使你的查询跑得更快点。另外提醒的是,对于MySQL来讲,术语“Key”和“Index”是可以互相替换的。
4.1.1.1 Partial indexes
索引是以空间换取性能。但有时候不想耗费太多的空间的话,MySQL有一系列控制索引空间的方法。例如你可以控制索引字节,采取部分索引的方法,当然这样性能会降低一些。
ALTER TABLE
phonebook ADD INDEX
(last
name(4))
4.1.1.2 Multicolumn indexes
使用多列索引的原因在于:MySQL will only ever use one index per table per query。
4.1.1.3 Index order
MySQL无需人工干预索引的排序,它会处理得很好。
4.1.1.4 Indexes as constraints
唯一索引(unique index)标明在给定的列里特值只能出现一次。唯一索引有两个作用:一个就是帮助查询迅速定位;二就是当插入或更新时,保证列里的值的唯一性。这就意味着,在这里,唯一索引起到了约束的作用。
ALTER TABLE
phonebook ADD UNIQUE
(phone
number)
4.1.1.5 Clustered and secondary indexes
聚集索引(clustered
index)将主键和记录直接挂钩,而且记录是根据主键来排序的。每一个表只能有一个聚集索引,这很好理解,因为记录只能用一种方法来排序。当你通过主键
来查询数据的时候,聚集索引非常快。因为它只要一次查询就可以得到结果,而标准的MyISAM的索引需要两次查询,先查到索引,然后通过索引得到的位置再
去查数据。
4.1.1.6 Unique indexes versus primary keys
主键其实就是一种不能包括数值NULL的唯一索引。主键对于MyISAM引擎不是必需的,但对于InnoDB 和BDB引擎来讲是必需的,如果你不声明,他们会隐含添加一个主键
4.1.1.7 Indexing NUL
Ls
4.2 Index Structures
这一节作者不会深究细节,他只想解决这几个问题:那种索引类型速度最快?那种灵活性最好?那种占用的空间最少?
4.2.1 B-Tree Indexes
B-Tree(balance tree)是目前最流行的索引类型,因为它在灵活性,空间占用和综合性能都比较优异。
B-Tree顾名思义就是树形结构,每个节点按照索引的数值来安排。因为是balance吗,所以在添加和去除节点后,B-Tree也不会失去平衡,它会自动调节。这种结构的好处就在于即使在最坏的情况下仍然可以得到比较
相关文档:
1、mysql编译参数:
#cat /usr/local/mysql/bin/mysqlbug|grep configure
# This is set by configure
CONFIGURE_LINE="./configure '--prefix=/usr/local/mysql' '--with-openssl' '--enable-thread-safe-client' '--enable-local-infile' '--with-charset=gbk' '-with-extra-charsets=gb2312,gbk'"
表示编译中支持ope ......
mysql
有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql
启动的时候加入一些参数。
如果在my.cnf里面修改,需增加如下几行
long_query_time = 10
log-slow-queries =
long_query_time
是指执行超过多久的sql会被log下来,这里是10秒。
log-slo ......
http://www.cnblogs.com/amboyna/archive/2009/11/16/1603867.html
有一段日子了,曾经设置了一次记录在mysql中查询慢于1秒钟的SQL语句。刚才突然回想设置的方法,有几个参数的名称死活回忆不起来了,于是重新整理一下,自己做个笔记。
对于排查问题找出性能瓶颈来说,最容易发现并解决的问题就是MYSQL的慢查询以及没有得 ......
MySQL导入导出.sql文件步骤如下:
一.MySQL的命令行模式的设置:
桌面->我的电脑->属性->环境变量->新建->
PATH=“;path\mysql\bin;”其中path为MySQL的安装路径。
二.简单的介绍一下命令行进入MySQL的方法:
1.C:\>mysql -h hostname -u username -p
按ENTER键,等待然后输入密码。这 ......
数据库连接字符串大全(MySQL)
MyODBC
MyODBC 2.50 Local database:
"Driver={mySQL};Server=localhost;Option=16834;Database=mydatabase;"
MyODBC 2.50 Remote database:
"Driver={mySQL};Server=data.domain.com;Port=3306;Option=131072;Stmt=;Database=my-databa ......