槽痞 发布的文章

go中,对于换行符这个样的单字符,是用'单引号括起来的,不能用双引号

可以使用B-tree索引的查询类型:

  • 全值匹配:和索引中的所有列进行匹配
  • 匹配最左前缀:即使用索引的第一列
  • 匹配列前缀:即匹配索引的第一列值的部分
  • 匹配范围值:匹配索引值的范围
  • 精确匹配某一列并范围匹配另外一列
  • 只访问索引的查询

B-Tree索引限制:

  • 如果不是按照索引的最最左列开始查找则无法使用索引。
  • 不能跳过索引中的列,即不能直接使用索引中中间的列,只能使用索引第一列
  • 如果查询中有某个列表的范围查询,则其右边所有的列都无法使用索引优化查找,如like,!=等。如果查询值的范围有限制,那么可以通过使用多个等于条件来代替范围条件。

哈希索引说明:

  • 存储引擎会对数据列计算一个hash值
  • 哈希索引只支持等值比较查询。
  • 哈希索引的速度非常快,除非有很多哈希冲突。
  • 哈希索引不是按照索引值顺序存储的,所以不能用于排序
  • 哈希索引不支持部分索引列匹配查找

ffmpeg 直接将m3u8转成mp4:
ffmpeg -i "http://xxxxxx/video/movie.m3u8" -vcodec copy -acodec copy -absf aac_adtstoasc output.mp4

package main

import "fmt"

//冒泡排序
func bsort(a []int){
    for i := 0;i < len(a);i++{
         for j := 1; j< len(a)-i;j++{
             if a[j] <  a[j-1]{
                a[j] ,a[j-1] = a[j-1],a[j]
            }
         }
    }
}

//选择排序
func csort(a []int){
    for i :=0; i < len(a); i++{
        minIndex := i
        for j:=i+1; j<len(a);j++{
            if a[j] < a[j-1]{
                minIndex = j
            }

            if minIndex != i{
                a[i],a[minIndex] = a[minIndex],a[i]
            }
        }
    }
}

//插入排序
func insertionSort(a []int){
    for i :=0;i<len(a);i++{
        for j :=i;j>0;j--{  //已经排好序的数
            if a[j-1] < a[j]{
                break
            }
            a[j-1],a[j] = a[j], a[j-1]
        }

    }
}

func main(){
    a := [...]int{8,7,6,5,2,12,433}
    b := [...]int{8,7,6,5,2,12,433}
    c := [...]int{54,8,7,53,10,6,5,2,12,6789,433}
    bsort(a[:])
    csort(b[:])
    insertionSort(c[:])
    fmt.Println(c)
}