摘要: 索引:索引的选取原则:最适合的索引列是出现在where条件语句中的列、索引列的长度应该尽量小(因为索引也是需要占据内存空间的,在更新表的记录的时候索引也要自动更新,这些都是需要时间消耗的),不要过度索引原因跟上述差不多。对于InnoDE存储引擎的表,记录默认会按照一定的顺序保存,如果有明确主键则会按主键保存,没有主键则按照索引来保存。InnoDE表的普通索引都会保存主键的键值,所以主键应该尽可能选择较短的数据类型,以有效减少索引的磁盘占用,提高索引的缓存效果。BTREE索引和HASH索引:适用的场合不同,这个不必过多的复述了。需要主意的是有些存储引擎在创建索引的时候默认的索引类型不同,在使用的 阅读全文
posted @ 2012-10-05 22:16 乌托邦. 阅读(2047) 评论(0) 推荐(0) 编辑
摘要: 选择合适的数据类型:char和varchar:char是固定长度的字符类型,varchar是可变长度的字符类型,因此char检索起来速度更快。char由于是固定长度的在检索的时候删除了尾部的空格。text和blob:blob可以用来存放二进制数据(照片视频等)。用text和blob时需要注意的问题有:在执行大量删除操作的时候会在数据表中留下很大的空洞,以后填入这些空洞的记录在插入的性能上会有影响。因此需要定期使用optimize table指令对碎片进行整理。可以使用合成的索引(根据文本内容建立一个散列值)来提高文本字段的查询性能,具体的散列方式有SHA1()、MD5()、CRC32()等,但 阅读全文
posted @ 2012-10-05 22:14 乌托邦. 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 存储引擎:存储引擎是用来干什么的?存储引擎是MySql重要特性之一,用户可以利用存储引擎选择如何存储数据和索引数据、是否使用事务等特性。显示数据库支持的存储引擎类型:show engines.在定义表的时候可以指定所使用的存储引擎的类型,否则则采用默认的类型。也可以alter修改表所使用的引擎类型。比较常用的集中引擎介绍:MyISAM:是MySql默认的存储引擎,不支持事务也不支持外键,优势是访问速度快,对事务完整性没有要求或以select、insert为主的应用可以使用这种引擎。其在磁盘上有三个文件其文件名和表名相同但扩展格式不同,分别用来存储表定义、存储数据、存储索引。其还支持三中不同的存 阅读全文
posted @ 2012-10-05 22:10 乌托邦. 阅读(301) 评论(0) 推荐(0) 编辑
摘要: AUTO_INCREMENT属性,每次插入一个记录让该字段的值为已存在的最大值加一,该字段必须是整数、且NOT NULL、Primary key或Unique一个表最多只能有一个AUTO_INCREMENT字段Decimal类型在内部是以字符串的形式存储的,所以高精度。在申明字段为浮点型的时候,如果指明字段的精度,如float(5,2)、double(5,2)、decimal(5,2)则在插入的值不符合要求的时候,数据库会根据四舍五入的法则去处理数据,并给出一个warning(显示warning的指令:show warnings)。float和double类型在不给出精度的时候会由操作系统和硬 阅读全文
posted @ 2012-10-05 22:08 乌托邦. 阅读(292) 评论(0) 推荐(0) 编辑
摘要: SQL语句的分类:DDL(数据定义语言)、DML(数据操作语言)、DCL(数据控制语句)MySql的命令语句以;或\g结束建库:Create database name;建表:Create tablle name;选择要操作的数据库:Use tablename;显示存在的数据库:Show databases显示某个数据库对应的存在的表:Show tables;查看表的定义:desc tablename;删除数据库:drop database name;删除表:drop table name;修改表的定义:alter table name modifyalter table name addal 阅读全文
posted @ 2012-10-05 22:04 乌托邦. 阅读(213) 评论(0) 推荐(0) 编辑