6、[数据库]MySQL的索引机制,复合索引的使用原则
一样寻常都会用书籍中的目录来介绍索引机制,包括有些书籍会有专门的快速检索附录,就很类似于数据库的索引。MySQL的索引包括4类:主键索引(primary key)、唯一索引(unique)、通例索引(index)、全文索引(fullindex)。Show index from table_name; –查察表中的索引Show status like ‘Handler_read%’ –查察索引的使用环境复合索引,一样寻常遵循最左前缀原则,如table_a 的 a b c 三列建复合索引create index ind_table_a on table_a(a,b,c);那么,只有在条件中用到a,或者a、b,或者a、b、c这样的环境下,才会用到刚建的复合索引。
7、[数据库]MySQL的表类型及MyISAM与InnoDB的区别
MySQL常见的表类型(即存储引擎)show engines查察支持表类型设置。常见包括:MyISAM/Innodb/Memory/Merge/NDB其中,MyISAM和Innodb是最常用的两个表类型,各有优势,我们可以根据需求环境选择适合本身的表类型。[MyISAM]1)每个数据库存储包括3个文件:.frm(表定义)、MYD(数据文件)、MYI(索引文件)2)数据文件或索引文件可以指向多个磁盘3)Linux的默认引擎,win默认InnoDB4)面向非事务类型,克制事务型额外的开销5)实用于select、insert密集的表6)MyISAM默认锁的调度机制是写优先,可以通过LOW_PRIORITY_UPDATES设置7)MyISAM类型的数据文件可以在不同利用系统中COPY,这点很紧张,布署的时候方便点。[Innodb]1)用于事务应用程序2)实用于update、delete密集的利用。实行select count() from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简朴的读出保存好的行数即可。注意的是,当count()语句包含 where条件时,两种表的利用是一样的。DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。3)引入行级锁和外键的约束4)InnoDB不支持FULLTEXT类型的索引