索引类型?索引种类?

  • 索引类型

    • fulltext
    • hash
    • btree
  • 索引种类

    • 普通索引
    • 唯一索引
    • 主键索引
    • 联合索引
    • 全文索引
  • 引用


索引类型

1.fulltext全文索引

  • 在myisam引擎中使用(只有char、varchar、text可用)
  • 为了解决like '%name%'这类针对文本的模糊查询效率较低的问题

2.hash索引

  • 特点是唯一,定位快
  • 适用于=in
  • 范围查询排序以及组合索引效率仍然不高

3.b/b+索引

  • 解决了hash索引的缺点,不仅适用于查找,还可用于排序和分组,可组合索引

索引种类

1.普通索引 index on table(col1)

  • 仅加速查询

2.唯一索引 unique index

  • 加速查询
  • 唯一(可以有null)

3.主键索引 primary key

  • 加速查询
  • 唯一(不可以为null)

4.联合索引 index on table(col1,col2)

  • 加速查询
  • 多列一起作为索引
  • 适用于组合搜索
    • 比如查找a同学所修b课程情况,此时同学课程都是多对多关系
    • 所以如果我们将同学做索引,就会筛选到a所修的所有课程(再从中间一条条判断)
    • 如果将课程做索引,就会筛选到修b课程的所有同学(再从中间一条条判断)
    • 所以此时用联合/组合索引最合适

5.全文索引 add fulltext(col1)

  • 分词搜索(没用过...)

什么是索引?Mysql目前主要的几种索引类型

全部评论

相关推荐

1.自我介绍2.介绍一下mcp, skills3.了解react哪些状态管理库4.对话是sse还是什么?是用fetch还是EventSource?5.ts中的any 和 unknown讲一讲6.是直接用组件库的组件还是自己封装了一些别的7.代码输出题1function main() {{var a = 1let b = 2}console.log(a);console.log(b);}main()console.log(a);8.什么是块级作用域 全局作用域 函数作用域9.代码输出题2for (var i = 0;i < 5;i++) {setTimeout(() => {console.log(i);}, 100);}10.代码输出题3for (var i = 0; i < 5; i++){function printText(temp) {setTimeout(() => {console.log(temp);}, 100);}printText(i)}11.代码输出题4for(var i = 0;i < 5;i++){function printText(temp) {var temp = isetTimeout(() => {console.log(temp);}, 100);}printText(i)}12.代码输出题5for(var i = 0;i < 5;i++){function printText(temp) {setTimeout(() => {var temp = iconsole.log(temp);}, 100);}printText(i)}13.点击控制台输出题export default function App() {const [count, setCount] = useState(0)console.log('render',count)return (<div><h1>{count}</h1>{setCount(count + 1)setTimeout(() => console.log('setTimeout', count), 1000)}}>+1</div>)}//这个组件点击按钮后,控制台的输出顺序和值如下:// 1. render 1 (组件重新渲染, count 更新为 1)// 2. setTimeout 0 (1秒后输出,注意这里是 0 而不是 1)14.算法:给有序数组arr = [-4, -1, 0, 3, 5],返回平方后的排序// 有序数组平方后排序const arr = [-4, -1, 0, 3, 5]function solution(arr) {const len = arr.lengthconst result = new Array(len)let left = 0let right = len - 1let index = len - 1while (left <= right) {if (arr[left] * arr[left] > arr[right] * arr[right]) {result[index] = arr[left] * arr[left]left++} else {result[index] = arr[right] * arr[right]right--}index--}return result}console.log(solution(arr));15.反问
查看14道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务