1、搜索的索引列,不一定是要选择的列。换句话说,最适合索引的列是出现在WHERE字句中的列,或连接字句中指定的列,而不是出现在SELECT关键字后选择列表中的列。2、使用唯一索引。考虑某列中值得分布,索引的列的基数越大,索引的效果越好。例如,存放出生日期的列具有不同的值,很容易区分各行。而用来记录性别的列,只有“M”和“F”,则对此列进行索引没有多大用处,因为不管搜游那个值,都会得出大约一半的行。3、使用短索引。如果对字符串列进行索引,应该指定一个前缀长度,只要有可能就应该这样做。4、利用最左前缀。在创建一个n列的索引时,实际是创建了MySQL可利用的n个索引,多列索引可起几个索引的作用,因为可利用索引中最左边的列集来匹配行,这样的列集成为最左前缀。5、不要过度索引。6、对于InnoDB存储引擎的表,记录默认会按照一定的顺序保存,如果有明确定义的主键,则按照主键顺序保存。如果没有主键,但是有唯一索引,那么就是按照唯一索引的顺序保存。如果既没有主键又没有索引,那么表中会自动生成一个内部列,按照这个列保存。按照主键或者内部列访问时最快的,所以InnoDB表尽量自己指定主键,当表中同时有几个...
 发布日期: 2015-04-07    分类: MySQL    浏览量: 2645   0条评论  
MySQL常用存储引擎对比特点MyISAMInnoDBMEMORYMERGENDB存储限制有64TB有没有有事务安全支持锁机制表锁行锁表锁表锁行锁B树索引支持支持支持支持支持哈希索引支持支持全文索引支持集群索引支持数据缓存支持支持支持索引缓存支持支持支持支持支持数据可压缩支持空间使用低高N/A低低内存使用低高中等低高批量插入的速度高低高高高支持外键支持1、MyISAMMyISAM引擎不支持事务,也不支持外键,优势是访问速度快。对事务完整性没有要求或者以SELECT、INSERT为主的应用基本上都可以用这个引擎。还有个问题就是MyISAM类型的表比较容易损坏。可以用CHECK TABLE语句来检查表的健康状态,用REPAIR TABLE来修复。它还支持三种不同的存储格式:静态(固定长度)表(默认格式);动态表;压缩表。2、InnoDBInnoDB引擎提供了具有提交、回滚和崩溃恢复能力的事务安全特性。还有以下一些特点:自动增长列;外键约束;存储表和索引有两种方式:使用共享表空间存储和使用多表空间存储。3、MEMORYMEMORY存储引擎的数据是放在内存中的,所以访问速度非常快。表中的数据是...
 发布日期: 2015-02-07    分类: MySQL    浏览量: 2593   0条评论  
1、字符串函数函数功能concat(s1,s2,...sn)连接s1,s2,...sn为一个字符串insert(str,x,y,insert)将字符串str从第x位置开始,y个字符长的子串替换为字符串insertlower(str)将字符串str中所有的字符变为小写upper(str)将字符串str中所有的字符变为大写left(str,x)返回字符串str最左边的x个字符right(str,x)返回字符串str最右边的x个字符lpad(str,n,pad)用字符串pad对str最左边进行填充,直到长度为n个字符长度rpad(str,n,pad)用字符串pad对str最右边进行填充,直到长度为n个字符长度rtrim(str)去掉字符串str右侧的空格repeat(str,x)返回str重复x次的结果replace(str,a,b)用字符串b替换字符串str中所有出现的字符串astrcmp(s1,s2)比较字符串s1和s2substring(str,x,y)返回从字符串str x位置起y个字符长度的字符串trim(str)去掉字符串str两端的空格ltrim(str)去掉字符串str左侧的...
 发布日期: 2015-01-18    分类: MySQL    浏览量: 2842   0条评论