首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    技术分享 | 在长字符串上创建索引

    ---- 当在很长的字符串的字段上创建索引时,索引会变得很大而且低效,一个解决办法是 crc32 或 md5 函数对长字符串进行哈希计算,然后在计算的结果上创建索引。...解决索引字段长的另一个办法是创建前缀索引(prefix index),前缀索引的创建语法是:col_name(length),前缀索引是对字符串的前面一部分创建索引,支持的数据类型包括:CHAR 、VARCHAR...创建前缀索引的关键是选择前缀的字符串的长度,长度越长,索引的选择性越高,但存储的空间也越大。...sbtest2 表中 c 字段是 120 长度的字符串,下面的 SQL 语句查询在不同长度时索引的选择性: mysql> select count(distinct(left(c,3)))/count

    1.5K20

    Java 实现长图文生成

    长图文生成 很久很久以前,就觉得微博的长图文实现得非常有意思,将排版直接以最终的图片输出,收藏查看分享都很方便,现在则自己动手实现一个简单版本的 目标 首先定义下我们预期达到的目标:根据文字 + 图片生成长图文...设计&实现 长图文的生成,采用awt进行文字绘制和图片绘制 1....每一行允许的文本长度有限,超过时,需要自动换行处理 文本绘制 考虑基本的文本绘制,流程如下 创建BufferImage对象 获取Graphic2d对象,操作绘制 设置基本配置信息 文本按换行进行拆分为字符串数组..., 循环绘制单行内容 计算当行字符串,实际绘制的行数,然后进行拆分 依次绘制文本(需要注意y坐标的变化) 下面是具体的实现 public static int drawContent(Graphics2D...g2d.dispose(); contentH += height; return this; } /** * 计算总行数 * * @param strs 字符串列表

    2.2K70

    前缀索引:长字符串字段的索引优化方案

    当面对长字符串字段(如地址、描述、URL等)时,传统的全字段索引会带来显著的性能瓶颈。本文将深入探讨前缀索引这一针对性解决方案,帮助开发者高效处理海量文本数据场景。...一、长字符串索引的痛点分析存储空间膨胀undefined假设对 VARCHAR(255) 的 email 字段建立完整索引: CREATE INDEX idx_email ON users(email...,在高并发场景下易引发锁竞争,实测表明字符串长度超过50字节时,写入吞吐量可能下降40%以上。...索引扫描 | 精确匹配完整字符串 | 匹配前N字符 || 2....热冷数据分层索引对历史归档数据使用长前缀,热数据使用短前缀: -- 热数据表(近3个月)CREATE INDEX idx_hot_email ON recent_users(email(15));

    66721

    有点长的 Java API 设计清单

    来源:http://t.cn/zOz8luI 在设计Java API的时候总是有很多不同的规范和考量。与任何复杂的事物一样,这项工作往往就是在考验我们思考的缜密程度。...就像飞行员起飞前的检查清单,这张清单将帮助软件设计者在设计Java API的过程中回忆起那些明确的或者不明确的规范。本文也可以看作为“API设计指南”这篇文章的附录。...不要(重复)使用Java核心包中的名称 2.3. 类 ▲2.3.1. 最小化实现使用的依赖 ▲2.3.2. 先列出public方法 ▲2.3.3. 申明实现方法为private(这里是笔误吗?)...建议把自定义类型的参数放大Java标准类型参数之前 ▲3.3.13. 建议把对象类型的参数方法值类型的参数之前 ▲3.3.14. 建议使用接口而不是具体类作为返回值 ▲3.3.15....除了Java核心Api,避免把类型作为不相关的Api的返回值 ▲3.3.28. 避免把可变的内部对象作为返回值来引用 ▲3.3.29. 不要把预先设置的常量作为整型值参数使用 ▲3.3.30.

    92440

    有点长的 Java API 设计清单

    来源:http://blog.jobbole.com/12958/ 在设计Java API的时候总是有很多不同的规范和考量。与任何复杂的事物一样,这项工作往往就是在考验我们思考的缜密程度。...就像飞行员起飞前的检查清单,这张清单将帮助软件设计者在设计Java API的过程中回忆起那些明确的或者不明确的规范。本文也可以看作为“API设计指南”这篇文章的附录。...不要(重复)使用Java核心包中的名称 2.3. 类 ▲2.3.1. 最小化实现使用的依赖 ▲2.3.2. 先列出public方法 ▲2.3.3. 申明实现方法为private(这里是笔误吗?)...建议把自定义类型的参数放大Java标准类型参数之前 ▲3.3.13. 建议把对象类型的参数方法值类型的参数之前 ▲3.3.14. 建议使用接口而不是具体类作为返回值 ▲3.3.15....除了Java核心Api,避免把类型作为不相关的Api的返回值 ▲3.3.28. 避免把可变的内部对象作为返回值来引用 ▲3.3.29. 不要把预先设置的常量作为整型值参数使用 ▲3.3.30.

    70510

    有点长的 Java API 设计清单

    来源:http://blog.jobbole.com/12958/ 在设计Java API的时候总是有很多不同的规范和考量。与任何复杂的事物一样,这项工作往往就是在考验我们思考的缜密程度。...就像飞行员起飞前的检查清单,这张清单将帮助软件设计者在设计Java API的过程中回忆起那些明确的或者不明确的规范。本文也可以看作为“API设计指南”这篇文章的附录。...不要(重复)使用Java核心包中的名称 2.3. 类 ▲2.3.1. 最小化实现使用的依赖 ▲2.3.2. 先列出public方法 ▲2.3.3. 申明实现方法为private(这里是笔误吗?)...建议把自定义类型的参数放大Java标准类型参数之前 ▲3.3.13. 建议把对象类型的参数方法值类型的参数之前 ▲3.3.14. 建议使用接口而不是具体类作为返回值 ▲3.3.15....除了Java核心Api,避免把类型作为不相关的Api的返回值 ▲3.3.28. 避免把可变的内部对象作为返回值来引用 ▲3.3.29. 不要把预先设置的常量作为整型值参数使用 ▲3.3.30.

    1K30

    Java字符串

    参考链接: Java字符串 字符串的创建  1.直接创建  String s="hello world"; 2.使用new进行创建  String s1=new String();//此时s1为""而不是...如果字符串等于参数字符串,返回0;小于参数字符串,返回-1;大于参数字符串,返回1. ...String的不可变性  1.不可变对象,指创建后的对象不可以改变,典型例子为Java中的String。 2.String类不可变的好处: A.可以实现字符串池。...字符串池的实现可以在运行时节约很多时间,因为不同的字符串变量都指向池中同一个字符串。 B.安全性得到保证。譬如数据库的用户名、密码等都是用字符串来传入;Socket编程中,主机名和端口都是字符串传入。...3.Java本身建议使用JPasswordField类的getPassword()方法,该方法返回一个Char[]和不推荐使用的getText()方法,该方法以明文形式返回密码。

    1.2K30

    java---字符串

    11.1 概念 字符串数据结构中的串,底层是由字符数组来进行封装而成的东西。字符串有一个特别的标志性的符号双引号"",字符串关键词是String,是一种特殊的引用数据类型。...11.2 字符串的创建语法 //常规创建方式,从字符串常量池中赋值数据 String str="hello world"; //使用new关键字来创建字符串 在读文件的时候会用到new这种情况 String...utf-8 String info=new String(data,"utf-8"); System.out.println(info); } } String在java.lang...在JVM中,为了减少字符串对象的重复创建,维护了一块特殊的内存空间,这块内存空间就被称为字符串常量池。在JDK1.6及之前,字符串常量池存放在方法区中。...,不会改变原字符串中的值,如果要用新的结果时,需要替换掉原字符串。

    77410
    领券