美文网首页
PHP面试题3--索引,JS处理字符串的方法

PHP面试题3--索引,JS处理字符串的方法

作者: Amy1234567 | 来源:发表于2021-05-18 17:28 被阅读0次

索引的作用及优缺点

创建索引能大大提高系统性能

优点:

1. 通过创建唯一性索引,可以保证数据库表中的每一行数据的唯一性。

2. 加快数据检索的速度,这也是创建索引的最主要原因。

3. 加快表与表之间的连接,在实现表的参考完整性方面特别有意义。

4. 在使用分组和排序子句进行检索时,可以减少分组和排序的时间。

5. 通过使用索引,可以再查询的过程中,使用优化隐藏器,提高系统的性能。

缺点:

1. 创建索引和维护索引需要时间,这种时间随着数据量的增加而增加。

2. 索引需要占物理空间,除了数据表占数据空间之外,每个索引还要占物理空间,如果要建立聚簇索引,需要的空间更大。

3. 当对表中的数据进行增加,删除和修改的时候,索引也要动态的维护,这就降低了数据的维护速度。

哪些列应该创建索引?

1. 在经常要搜索的列上,可以加快搜索的速度。

2. 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构。

3. 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度。

4. 在经常需要根据范围进行搜索的列上,因为索引已经排序,其指定的范围是连续的。

5. 在经常需要进行排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。

6. 在经常使用在where子句中的列上创建索引,加快条件的判断速度。

哪些列不应该创建索引?

1. 对于那些在查询中很少使用或者参考的列,不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提到查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

2. 对于那些很少数据值的列,也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

3. 对应那些定义为text, image和bit数据类型的类不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

4. 当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。

索引的类型

Mysql常用的索引有:主键索引,唯一索引,普通索引,组合索引,全文索引

各个索引的创建方式

Primary Key(主键索引):alter table table_name add primary key ('column')

Unique(唯一索引):alter table table_name add unique ('column')

Index(普通索引):alter table table_name add index  index_name ('column')

FullText(全文索引):alter table table_name add fulltext ('column')

组合索引:alter table table_name add index index_name ('column1', 'column2','column3')

Mysql各种索引的区别

1. 普通索引(index):最基本的索引,没有任何限制

2. 唯一索引(Unique):与“普通索引”类似,不同的是:索引列的值必须是唯一的,可以为空

3. 主键索引(Primary):特殊的唯一索引,不允许有空值

4. 全文索引(FullText):MySql 5.6 以后,既可以用于MyISAM,InnoDB存储引擎都可以。用于搜索很长一篇文章的时候,效果最好

5. 组合索引:为了更多的提高MySql效率可建立组合索引,遵循“最左前缀”原则

索引失效的几种情况

1. 前导模糊查询不能利用索引(like '%XXX'或者like '%XXX%')(在后面不会)

2. 如果是组合索引的话,如果不按照索引的顺序进行查找,则会进行全表查询

3. 条件中有or (如果sql中有or可以换成union)

4. where判断条件有is null或者is not null (可以给字段设置默认值,确保不会有null存进去)

5. in和not in要慎用,对于连续的数值,能用between and就不用in

6.  应尽量避免在where子句中使用!=或<>

7. 应尽量避免在索引列上做任何操作,如函数,计算,类型转换等。如trim(),substring(),num = 100*2

js常用字符串处理方法

JS自带函数

1. string.concat(string1string2, ..., stringX);    将两个或多个字符的文本组合起来,返回一个新的字符串。

2. string.charAt(index);    方法可返回指定位置的字符。第一个字符位置为 0, 第二个字符位置为 1,以此类推。

3. string.indexOf(searchvalue,start);    方法返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回-1。indexOf()方法区分大小写。

4. string.match(regexp);    方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。比如:var n=str.match(/ain/gi); 返回值为:存放匹配结果的数组。如果没有找到匹配结果返回null.

5. string.substring(from, to);    方法用于提取字符串中介于两个指定下标之间的字符。返回的子串包括开始处的字符,不包括结束处的字符。

6. string.substr(start,length);    方法可在字符串中抽取从start下标开始的指定数目的字符。 substr() 方法不会改变源字符串。

7. string.replace(searchvalue,newvalue);    方法用于在字符串中用一些字符替换了另一些字符,或替换一个与正则表达式匹配的字符串。比如:var n=str.replace(/blue/g,"red");

8. string.search(searchvalue);    方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回-1。比如:str.search(/blue/i)。

9. string.slice(start,end);    方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。使用start(包含)和end(不包含)参数来指定字符串提取的部分。start 参数字符串中第一个字符位置为 0, 第二个字符位置为 1, 以此类推,如果是负数表示从尾部截取多少个字符串,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。end 参数如果为负数,-1 指字符串的最后一个字符的位置,-2 指倒数第二个字符,以此类推。

10. string.split(separator,limit);    方法用于把一个字符串分割成字符串数组。方法不改变原始字符串。

11. string.length;    length 属性返回字符串的长度(字符数)。

12. string.toLowerCase();    方法用于把字符串转换为小写。

13. string.toUpperCase();    方法用于把字符串转换为大写。

14. string.trim();    方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。不会改变原始字符串。不适用于 null, undefined, Number 类型。

15. string.includes(searchvalue, start);    方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。区分大小写。

相关文章

  • PHP面试题3--索引,JS处理字符串的方法

    索引的作用及优缺点 创建索引能大大提高系统性能 优点: 1. 通过创建唯一性索引,可以保证数据库表中的每一行数据的...

  • JavaScript 字符串

    js字符串,js字符串的概述和声明,js字符串的特性,js字符串的常用方法,js字符串的拓展方法,js字符串的案例...

  • json在js与php解析对应关系

    json在js与php解析后有所不同,php的索引数组对应js的数组,php的关联数组对应js的对象。你要是想让j...

  • PHP基础 —— 数组

    数组 PHP中不需要指定数组大小 索引数组 索引为整数的数组 关联数组 索引值为字符串的数组,使用字符串作为索引 ...

  • js笔记十三之字符串及常用方法

    字符串常用方法 在js中用单(双)引号包起来的都是字符串 索引 字符串中的第一个字符索引是0字符串中的第二个字符索...

  • php常用方法

    php中处理字符串的相关方法 将日期时间字符串转化为整形(时间戳)strtotime() 函数将任何英文文本的日期...

  • php的写时复制(和js对比)

    php和js 对于数组 / 对象的处理

  • elf 文件字符串加解密

    1. 说明 对 cpp 文件内的字符串进行过滤 对字符串进行 MD5 处理,然后做为字符串类索引的类名、方法名 提...

  • 数组去重和字符串方法

    字符串方法: charAt() 获取字符串元素 括号里面传索引 indexOf() 获取字符串的索引,如果字符串里...

  • 数组去重和字符串方法

    字符串方法: charAt() 获取字符串元素 括号里面传索引 indexOf() 获取字符串的索引,如果字符串里...

网友评论

      本文标题:PHP面试题3--索引,JS处理字符串的方法

      本文链接:https://www.haomeiwen.com/subject/vleejltx.html