首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FAQ系列之Phoenix

是的,您可以使用 Kerberos 进行身份验证。您可以使用 HBase 授权配置授权。 我可以在 Phoenix 表中看到单个单元格的时间戳吗?这是常用的东西吗?...我可以使用标准 HBase API 访问 Phoenix 创建的表吗? 是的,但不推荐或不支持。数据是由 Phoenix 编码的,因此您必须对数据进行解码才能读取。...我可以将 Phoenix 表映射到现有的 HBase 表上吗? 是的,只要使用 Phoenix 数据类型。您必须使用异步索引并手动更新它们,因为 Phoenix 不会知道任何更新。...index idx on test (col2) 在 col1 上创建索引并在 col2 上创建覆盖索引 create index idx on test (col1) include (col2)...如果 Phoenix 正在使用索引表,您可以在解释计划中看到。您还可以在 Phoenix 查询中提示使用特定索引。 为什么我的二级索引没有被使用?

3.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL从删库到跑路_高级(六)——索引

    C、在不同值少的列上不要建立索引,比如在学生表的"性别"字段上只有男,女两个不同值。在一个不同值较多的列可以建立索引。...2、复合索引 在表中的多个字段组合上创建的索引,只有在查询条件中使用了组合的多个字段的左边字段时,索引才会被使用,使用复合索引时遵循最左前缀集合。...在创建空间索引时,使用SPATIAL关键字。  空间索引必须使用MyISAM存储引擎, 并且空间索引的字段必须为非空。...三、索引的操作 1、索引的创建 创建表时创建索引的语法: CREATE TABLE table_name[col_name data type] [UNIQUE|FULLTEXT|SPATIAL][INDEX...E、不要在列上进行运算 在索引列上进行运算将导致索引失效而进行全表扫描,例如 SELECT * FROM table_name WHERE YEAR(column_name)<2017; F、不使用

    1.2K20

    数据库优化:SQL高性能优化指南,助你成就大神之路!

    3、能写在 WHERE 子句里的条件不要写在 HAVING 子句里 下列 SQL 语句返回的结果是一样的: -- 聚合后使用 HAVING 子句过滤 SELECT sale_date, SUM(quantity...假设我们在 col 列上建立了索引,则下面这些 SQL 语句无法用到索引 SELECT * FROM SomeTable WHERE col * 1.1 > 100; SELECT * FROM...SomeTable WHERE SUBSTR(col, 1, 1) = 'a'; 以上第一个 SQL 在索引列上进行了运算, 第二个 SQL 对索引列使用了函数,均无法用到索引,正确方式是把列单独放在左侧...这是我司出现很多慢 SQL 的主要原因之一,尤其是在跑任务需要分页执行时,经常跑着跑着 offset 就跑到几十万了,导致任务越跑越慢。...」可以发现 key 为 None ,说明确实没有命中索引 我司在提供 SQL 查询的同时,也贴心地加了一个 EXPLAIN 功能及 sql 的优化建议,建议各大公司效仿 ^_^,如图示 21、 批量插入

    86920

    关于Oracle序列、索引、同义词

    Oracle 管理系统决定何时使用索引。...用户不用在查询语句中指定使用哪个索引 在删除一个表时,所有基于该表的索引会自动被删除 通过指针加速 Oracle 服务器的查询速度 通过快速定位数据的方法,减少磁盘 I/O ①、创建索引 自动创建: 在定义...PRIMARY KEY 或 UNIQUE 约束后系统自动在相应的列上创建唯一性索引 手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询 在一个或多个列上创建索引 CREATE INDEX index...(last_name); Index created. ②、查询索引 可以使用数据字典视图 USER_INDEXES 和 USER_IND_COLUMNS 查看索引的信息 SELECT    ic.index_name...创建同义词 CREATE SYNONYM  d_sum FOR  dept_sum_vu; Synonym Created.

    55320

    3 万字,关系型数据库性能体系,设计和效率提升

    19、数据库连接及时关闭 20、索引的使用 20.1、避免在索引列上使用函数或运算 20.2、避免改变索引列的类型 20.3、避免在索引列上使用 NOT 20.4、用 >= 替代 > 20.5、避免在索引列上使用...,请在选择性大的列上分别建立单列索引; 切忌不能将表相关的所有 SQL 中 WHERE 涉及到的列复合起来建立复合索引; 3.6、函数索引的规范 由于使用形式需和创建形式一致,尽量避免使用函数索引;如果想要使用函数索引...由于函数索引在使用时,使用形式必须和创建形式一致,故应该尽量避免使用函数索引,尽量采用如下方法转化 SQL 以避免函数索引的使用: 原本在 WHERE 中列上添加函数的,取函数的反意义函数添加到 = 另一侧的常数项上...如下不符合规范: SELECT CLASS,sum(COL) FROM TAB_TEST WHERE CLASS='A' UNION ALL SELECT CLASS,sum(COL) FROM...'; 20.3、避免在索引列上使用 NOT 避免在索引列上使用 NOT,NOT 不会使查询条件使用索引。

    1.9K22

    Mysql开发规范

    1开始【建议】主键禁止使用字符类型,禁止使用联合主键,推荐使用唯一索引来替代【建议】业务上具有唯一特性的字段,必须创建唯一索引【建议】不建议在频繁更新的字段上建立索引【建议】索引尽量建在选择性高的列上,...不在低基数列上建立索引,例如性别、类型选择性的计算方式为: select count(distinct(col_name)) / count(*) from tb_name如果结果小于0.2,则不建议在此列上创建索引...,否则大概率会拖慢SQL执行【建议】合理利用覆盖索引,联合索引,避免过多的单列索引,合理使用索引来避免排序和临时表的使用【建议】对超过30个字符长度的列创建索引时,考虑使用前缀索引,比如 idx_cs_guid2...【强制】避免大表join,禁止3个大表的join,join字段类型需保持绝对一致,关联字段必须有索引【建议】线上业务修改或删除数据,务必根据主键来实现【建议】禁止使用 SELECT * ,必须明确指定列...当某一列的值全为null,count(col)的返回结果为0,但sum(col)的返回结果为null,因此使用sum()时需要注意空指针异常的问题。

    8210

    SQL 进阶技巧(上)

    的一些进阶使用技巧 SQL 的优化方法 SQL 的书写规范 在介绍一些技巧之前,有必要强调一下规范,这一点我发现工作中经常被人忽略,其实遵循好的规范可读性会好很多,应该遵循哪些规范呢 1、 表名要有意义...ON A.id = B.id; 用到了 「id」列上的索引,而且由于没有子查询,也不会生成临时表 二、避免排序 SQL 是声明式语言,即对用户来说,只关心它能做什么,不用关心它怎么做。...三、能写在 WHERE 子句里的条件不要写在 HAVING 子句里 下列 SQL 语句返回的结果是一样的: -- 聚合后使用 HAVING 子句过滤 SELECT sale_date, SUM(quantity...,不过如果指定带有索引的列作为这两者的参数列,由于用到了索引,可以实现高速查询,由于索引是有序的,排序本身都会被省略掉 五、使用索引时,条件表达式的左侧应该是原始字段 假设我们在 col 列上建立了索引...SUBSTR(col, 1, 1) = 'a'; 以上第一个 SQL 在索引列上进行了运算, 第二个 SQL 对索引列使用了函数,均无法用到索引,正确方式是把列单独放在左侧,如下: SELECT *

    1.1K20

    数据库索引的作用和长处缺点

    大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。 为什么要创建索引呢?这是由于,创建索引能够大大提高系统的性能。 第一,通过创建唯一性索引,能够保证数据库表中每一行数据的唯一性。...一般来说,应该在这些列 上创建索引,比如: 在常常须要搜索的列上,能够加快搜索的速度; 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; 在常常常使用在连接的列上,这 些列主要是一些外键...; 在常常使用在WHERE子句中的列上面创建索引,加快条件的推断速度。...使用这样的方法,能够指定索引的类型、唯一性和复合 性,也就是说,既能够创建聚簇索引,也能够创建非聚簇索引,既能够在一个列上创建索引,也能够在两个或者两个以上的列上创建索引。...;在复合索引中,列的排列顺序是很重要的,因此要认真排列列的顺序,原则上,应该首先定义最唯一的列,例 如在(COL1,COL2)上的索引与在(COL2,COL1)上的索引是不同样的,由于两个索引的列的顺序不同

    95810

    浅谈索引的优缺点和建立索引的原则

    通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能 索引的缺点 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。...count(distinct col)/count(*),表示字段不重复的比例,比例越大我们扫描的记录数越少,唯一键的区分度是1,而一些状态、性别字段可能在大数据面前区分度就是0,那可能有人会问,这个比例有什么经验值吗...7.like 模糊查询中,右模糊查询(321%)会使用索引,而%321 和%321%会放弃索引而使用全局扫描 应该建立索引的情况 在经常需要搜索的列上,可以加快搜索的速度; 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构...; 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度; 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的; 在经常需要排序的列上创建索引,因为索引已经排序,...这样查询可以利用索引的排序,加快排序查询时间; 在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

    3.2K10

    数据库设计规范

    只有需要全局唯一主键时,使用外部自增id服务 如果没有主键或唯一索引,UPDATE/DELETE是通过所有字段来定位操作的行,相当于每行就是一次全表扫描 少数情况可以使用联合唯一主键,需与DBA协商...组合唯一索引作为主键的话,是随机写入,适合写少读多的表 主键不允许更新 4.4 索引尽量建在选择性高的列上 不在低基数列上建立索引,例如性别、类型。...tbname,越接近1说明col1上使用索引的过滤效果越好 走索引扫描行数超过30%时,改全表扫描 4.5 最左前缀原则 MySQL使用联合索引时,从左向右匹配,遇到断开或者范围查询时,无法用到后续的索引列...,如果在该列上ORDER BY或GROUP BY时无法使用索引,也不能把它们用作覆盖索引(Covering Index) 如果在varbinary或blob这种以二进制存储的列上建立前缀索引,要考虑字符集...4.8 尽量不要在频繁更新的列上创建索引 如不在定义了ON UPDATE CURRENT_STAMP的列上创建索引,维护成本太高(好在MySQL有insert buffer,会合并索引的插入) 4.9

    1.5K20

    SQL编写规范

    这是我参与「掘金日新计划 · 8 月更文挑战」的第19天,点击查看活动详情 >> [SQL编写规范] 一、书写规范 二、书写优化性能建议 oracle数据库开发优化建议 一、书写规范 1、sql编写时...如必须使用排序操作,尽量建立在有索引的列上。 12、索引的建立应慎重考虑,不是越多越好。索引可以提高相应的select的效率,但同时也降低了INSERT、UPDATE 的效率。...14、避免不必要的类型转换 15、in、or子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。 16、使用ROWID提高检索速度。...对SELECT得到的单行记录,需进行DELETE、UPDATE操作时,使用ROWID将会使效率大大提高。...22、复合索引创建时,建议按字段可选性高低进行排序,即字段值多的排在前面。

    1.6K30

    InnoDB中的索引类型

    大家好,又见面了,我是你们的朋友全栈君。...例如当开发人员创建了一个以字段A作为索引的非聚簇索引结构,并且在SQL中使用字段A作为查询条件执行检索时。...复合索引: 单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上; 用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引); 复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引...; 同时有两个概念叫做窄索引和宽索引,窄索引是指索引列为1-2列的索引,宽索引也就是索引列超过2列的索引; 设计索引的一个重要原则就是能用窄索引不用宽索引,因为窄索引往往比组合索引更有效; 使用: 创建索引...col2=B 将不会使用索引 2、何时是用复合索引 根据where条件建索引是极其重要的一个原则; 注意不要过多用索引,否则对表更新的效率有很大的影响,因为在操作表的时候要化大量时间花在创建索引中

    78020

    学习数据库必会知识点-索引-以及索引的巧妙用法

    其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。...ON table_name(col_name); --创建普通组合索引CREATE INDEX index_name ON table_name(col_name_1,col_name_2); --创建唯一组合索引...show profiles; 五、创建索引的时机 到这里我们已经学会了建立索引,那么我们需要在什么情况下建立索引呢?...刚才提到只有某些时候的LIKE才需建立索引。因为在以通配符%和_开头作查询时,MySQL不会使用索引。...- 组合索引代替多个单列索引(经常使用多个条件查询时)- 尽量使用短索引- 使用连接(JOIN)来代替子查询(Sub-Queries)- 连表时注意条件类型需一致- 索引散列值(重复多)不适合建索引,例

    44030

    MySQL - 索引详解

    ) 单列索引和组合索引 单列索引: 即一个索引只包含单个列,一个表可以有多个单列索引 组合索引: 指在表的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用 全文索引...,并且索引中的列尽可能要少,而对经常用于查询的字段应该创建索引,但要避免添加不必要的字段 数据量小的表最好不要使用索引,由于数据较少,查询花费的时间可能比遍历索引时间还要短,索引可能不会产生优化效果 在条件表达式中经常用到的不同值较多的列上建立索引...使用唯一索引需能确保定义的列的数据完整性,以提高查询速度 在频繁排序或分组(即group by或order by操作)的列上建立索引,如果待排序的列有多个,可以在这些列上建立组合索引 使用 使用 CREATE...TABLE 创建表的时候,除了可以定义列的数据类型,还可以定义主键约束、外键约束或者唯一性约束,而不论创建哪种约束,在定义约束的同时相当于在指定列上创建了一个索引。...,用来指定创建索引 col_name为需要创建索引的字段列,该列必须从数据表中该定义的多个列中选择 indexname为指定索引的名称,为可选参数,如果不指定则MySQL默认colname为索引值 length

    96420

    架构面试题汇总:mysql索引全在这!(五)

    问题3:什么时候应该使用索引,什么时候不应该使用索引? 答案: 应该使用索引的情况: 在经常用于搜索、排序和连接的列上创建索引,可以大大提高查询速度。...在唯一性要求高的列上创建唯一索引,以保证数据的唯一性。 不应该使用索引的情况: 在数据量小的表上,创建索引可能并不会带来明显的性能提升,反而会增加额外的存储和维护开销。...例如,如果你有一个包含三列的索引(col1, col2, col3),并且你的查询条件只涉及col2和col3,那么MySQL可能不会使用这个索引。...但是,如果查询条件包含col1和col2,或者只有col1,那么MySQL就可能会使用这个索引。...因此,只应在需要提高查询性能的列上创建索引。 使用覆盖索引:如果一个查询只需要访问索引中的信息,而不需要访问数据行,那么MySQL就可以使用覆盖索引来提高查询性能。

    25510

    探索SQL Server元数据(三):索引元数据

    背景 在第一篇中我介绍了如何访问元数据,元数据为什么在数据库里面,以及如何使用元数据。介绍了如何查出各种数据库对象的在数据库里面的名字。...有时问题是选择一个坏的填充因子,错误地设置ignore_dup_key选项,创建一个永远不会被使用(但必须被维护)的索引,丢失外键上的索引,或者将GUID作为主键的一部分。...这是因为它是确保只获得用户表的最简单方法。我们选择index_id 的values大于0,因为如果不为表创建集群索引,在sys中仍然有一个条目。索引,但它指向的是堆,不代表索引。...此外,无论该表是否有聚集索引,每个非聚集索引都有一行,其index_id值大于1。我们过滤了的索引,这些索引是由数据库引擎优化顾问(DTA)创建的,目的仅仅是测试一个可能的索引是否有效。...注意:我已经在代码里使用了动态管理视图sys.dm_db_index_usage_stats,这里起到了手机使用信息的作用,之后我们会更详尽的使用换这个对象来说明其作用。 这些索引占用了多少空间?

    1.1K10

    【数据库】MySQL进阶二、索引简易教程

    因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。...; 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的; 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间; 在经常使用在...这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。...使用这种方法,可以指定索引的类型、唯一性和复合性,也就是说,既可以创建聚簇索引,也可以创建非聚簇索引,既可以在一个列上创建索引,也可以在两个或者两个以上的列上创建索引。...;在复合索引中,列的排列顺序是非常重要的,因此要认真排列列的顺序,原则上,应该首先定义最唯一的列,例如在(COL1,COL2)上的索引与在(COL2,COL1)上的索引是不相同的,因为两个索引的列的顺序不同

    1.4K90

    Mysql资料 索引--索引优化(上)

    区分度的公式是count(distinct col)/count(*), 表示字段不重复的比例,比例越大我们扫描的记录数越少,唯一键的区分度是1,而一些状态、 性别字段可能在大数据面前区分度就是0,那可能有人会问...,这个比例有什么经验值吗?...) = ’2014-05-29’ 就不能使用到索引,原因很简单,b+树中存的都是数据表中的字段值, 但进行检索时,需要把所有元素都应用函数才能比较,显然成本太大。...索引一定要创建在 where 后的条件列上,而不是 select 后的选择数据的列上,另外,我们要尽量选择在唯一值多的大表上的列建立索引,例如:男女性别列唯一值, 不适合建立索引 慢查询优化 先运行看看是否真的很慢...by limit 形式的sql语句让排序的表优先查 了解业务方使用场景 加索引时参照建索引的几大原则 观察结果,不符合预期继续从0分析

    42500
    领券