年前最后一场技巧盛宴 | 1月27日与京东、日记易技巧大年夜咖畅聊智能化运维成长趋势!
其实,Oracle也有类似的实现,对于文本,它可以经由过程substr的函数索引,实现同样甚至更多的功能。别的,经由摸索,我们发明,本来数字和时光字段,在Oracle也可以实现类似的功能。
有兴趣的,可以做个10053。Oracle内部实际进行履行筹划解析的,就是如许一个SQL。
MySQL的前缀索引
MySQL的前缀索引指的是对指定的栏位的前面几位建立的索引。
- Altertable Table_Name add key(column_name(prefix_len));
或者
- Createindex index_name on Table_Name(column_name(prefix_len));
建立前缀索引后,可以直接当做通俗索引进行过滤。
MySQL有一个很有意思的索引类型,叫做前缀索引,它可以给某个文本字段的前面部分零丁做索引,大年夜而降低索引的大年夜小。
- Select ..from table_name where column_name=’…’;
前缀索引的最大年夜的好处是降低索引的大年夜小。别的,因为InnoDB单列索引长度不克不及跨越767bytes,如不雅是text或者blob字段,直接建立索引可能会报错,而前缀索引可以绕过这一限制。
- mysql> alter table test_prefix_ind add key(text_str);
- ERROR 1170 (42000): BLOB/TEXT column 'text_str' used in key specification without a key length
- mysql> alter table test_prefix_ind add key(blob_str);;
- ERROR 1170 (42000): BLOB/TEXT column 'blob_str' used in key specification without a key length
做个测试看一下。
- delimiter;;
- dropFUNCTION if exists random_str;;
- CREATEFUNCTION random_str(n int) RETURNS varchar(30000)
- begin
- declarereturn_str varchar(30000) default "";
- declare iint default 0;
- whilelength(return_str) < n do
- setreturn_str=concat(return_str,md5(rand()));
推荐阅读
Memory Cleaner——简单好用的Windows内存优化工具
年前最后一场技巧盛宴 | 1月27日与京东、日记易技巧大年夜咖畅聊智能化运维成长趋势!Windows 操作体系在没有效户干涉的情况下可以相当有效地治理计算机内存的应用情况,但不是说就没有可以优化和改进的>>>详细阅读
地址:http://www.17bianji.com/lsqh/40347.html
1/2 1