KEY `city` (`city`) ) ENGINE=InnoDB; 通过这个下面这段sql 进行排序: select city,name,age from t where city='杭州' order...; 排序过程: 初始化一个sort buffer 我们对 city进行了索引的创建所以通过索引将city为杭州的筛选出来;(减少全表扫描) 将筛选出来的 city age name 字段放在内存中的...sortbuffer 中(sort buffer 为排序开辟的一块新内存) 直到不符合查询的条件。...(就算是limit等于1000 在这一步也会查出比1000多的数据 在这块分页是不起作用的 ) 一直重复第三步 将符合条件的在所有数据存入 sort buffer 中 通过name 进行快速排序。
给一个list查询哪些在表中哪些不在 select values from a list return that are in table and that are not in table 数据库 mysql...测试表 test table name wz hl ---- 查询的列表 select list [ 'xm' ,'xw' ,'xl' ,'wz' ,'bt' ,'hh'] ---- 查询语句 select
02-23无意中在在论坛看到一个帖;具体的问题大概就是MySQL与MariaDB对子查询中order by的查询结果不一样; 具体的问题的描述看查看如下的连接;论坛帖子连接:https://bbs.csdn.net...MySQL会去执行内层查询的排序子句,但是MariaDB会将这个order by忽略掉,除非在内层查询语句中不仅有order by,还有limit子句,那么这时这个order by是不会被MariaDB...因为子查询中确实没有使用到limit,那我加上limit是否就会结果不一样呢?...通过分析:很明显在操作update的时候就出现了问题,也就是说在update中select查询出来的结果就有问题了,那update之后结果就有问题了,那再次查询结果肯定无法满足需求了;下面就是我通过实验针对...,这时候就和在MariaDB中的查询结果一样了; ?
原文发布时间:2017年 QueryableStates 允许用户对流的内部状态进行实时查询,而无需将结果存储到任何外部存储中。...然后 JobManager actor 会收到有关状态注册的通知,JobManager 将位置信息存储在 KvStateLocationRegistry 中,后面就可以在查询期间使用。 2....然后客户端打开与 KvStateServer 的连接并使用 KvStateID 从注册表中获取状态。检索到状态后,将提交异步查询以从给定键的状态中获取值。得到的结果被序列化并发回客户端。...同时,状态在处理过程中作业会不断更新,因此客户端在查询时总是可以看到最新的状态值。...在博客的下一部分中,我们将实现一个 Streaming Job,它通过 QueryableState API 公开其状态,并创建一个 QueryClient 来查询此状态。谢谢阅读!
笔者自认为有个很好的习惯,每个完成的工作,都会新建一个文件夹,放在工作文件夹下面,并且分类很细,详细命名,方便查找,万一遗忘也没关系,关键字和时间一搜索即可。...所以在今天,同事提供了任务日期,让我找一个文档时,按照关键字在文件夹内一搜索,没有找到——因为有时候太忙,有些文件夹我并没有按照以往的习惯进行命名,因此,即使有日期,我也很难快速找到。...自然有快捷方式——HHDESK批量重命名功能,有个选项,能够在后缀添加日期,而且是文件夹创建日期。首页——文件管理,选择目录,选中需要筛选的文件夹,右键——重命名。...在弹出框中,点击“日期”按钮,创建时间变直接添加在了文件名上。如果需要修改文件名,点击启动;如果只是查看一下日期,叉掉即可。当然,这里更加推荐修改文件名,方便下次查找。一个小诀窍,解决一个大麻烦。
前言 ---- git mv 命令用于移动或重命名一个文件、目录或软连接。 它会将内容从工作区和暂存区中重命名,手动重命名需要执行两步操作,git mv 一步即可 2....仓库并且做一个提交记录 git init echo 1.log >> 1.log echo 2.log >> 2.log git add . git commit -m 'first commit' 将 1. log 重命名为...10.log(mv 命令) mv 1.log 10.log git add 1.log 10.log 将 2. log 重命名为 20.log(git mv 命令) git mv 2.log 20....log 总结: 手动重命名需要执行两步操作,使用 git mv 一个命令即可完成重命名 # 提交到版本库 git commit -m '重命名文件' 3....--force 默认情况下,如果目标文件已存在,会报错,使用该参数可以进行强制替换,原文件将被覆盖掉 git mv -f -v, --verbose 重命名成功时默认不会提示
Excel中通过VBA批量重命名工作表Worksheet Microsoft Docs Step 1: 打开Developer Tab找到VBA (快捷键 Alt+F11) Step 2: Insert...If rs.Range("F3").Value "" Then rs.Name = rs.Range("F3") End If Next rs End Sub Excel中通过...VBA批量修改特定位置颜色 单个无条件修改全部工作表 Sub BackGroudColor() Dim rs2 As Worksheet For Each rs2 In Sheets rs2.Range...Otherwise, do nothing End If Next rngCell 有条件修改全部工作表 修改全部工作表的代码为 Dim ws As Worksheet For Each ws In...Sheets ###在中间插入你想要全部工作表都修改的代码 Next ws ======================================== Sub Fill_Cell_Condition
在业务场景中解析xml基本上两种,一种是配置,另一种是调用外部项目接口反馈的xml。前者这里不多说,自己的配置随心所欲,通常xml的结构也相对比较简单。...而后者就比较糟心了,比如我遇到的,一边接对应的接口一边不停的吐槽,泪崩中啊。 至于dom4j如何使用和一些基本概念,这里就不过多描述,网上随便一搜就是一大堆。 这里主要说下解析含有命名空间的XML。...原以为几行代码轻松搞定,可最后发现selectNode始终获取不到对应的节点,起初还以为是我的路径有问题,后来才知道dom4j不能识别带命名空间的节点,所以在读取带命名空间的XML时,要在每个节点前加上命名空间...吐槽归吐槽,接还是得接啊,网上找些资料之后也大致明白,只要在节点前加上命名空间即可。 可好事多磨啊,我接的那个接口居然有两个命名空间,soapenv和response两个节点上都有,好吧,我忍。...大体思路就是,先获取根节点,取到对应的命名空间,然后selectSingleNode到response这个节点取第二个命名空间,最后再组装xpath取到自己想要的节点。
工作中用的代码 Sub ExcelVBA从工作簿中查询多个姓名并复制出整行数据() Dim outFile As String, inFile As String Dim outWb...' 则没有找到匹配的 MsgBox ("一个也没找到") End If '==end=工作表内部...Else .Calculation = xlCalculationManual End If End With End Sub ''''判断工作表是否存在...) If Err.Number = 0 Then MyExistSh = True Set sht = Nothing End Function '# # 输入工作表
学习Excel技术,关注微信公众号: excelperfect 我们可以将存储数据的工作表当作数据库,使用ADO技术,结合SQL查询语句,可以在工作表中获取满足指定条件的数据。...图1 下面,需要将工作表Sheet2的数据中物品为“苹果”的数据行复制到工作表Sheet3中,如下图2所示。 ?...在同一代码中,只需要连接数据库一次,接着可以执行多个查询操作,无需每次查询前都进行连接。...SQL查询语句为: query = "Select * from [" & wksData.Name _ & "$] Where 物品='苹果' " 在工作表wksData中查询物品为“苹果”的记录...query = "Select * from [" & wksData.Name _ & "$] Where 编号 like '%1' " 5.查询编号中包含200的记录。
假设现有表 A,出于一些原因,想将其重命名为B,执行HSQL: alter table test_db.dm_order_xxx_a RENAME TO test_db.dm_order_xxx_b...出现报错: 报错原因说明 : 报错分析: 库和表不在同一个HDFS cluster上,导致在hive表在rename的过程中,mv HDFS目录的时候产生across federation的报错。...其中, 库表不在同一个HDFS cluster的原因有: 用户手动指定了table locaiton 因FS cluster容量比较满时,BD同学将部分库的location迁到新的HDFS cluster...执行需要添加这一行 alter table test_db.dm_order_xxx_a set tblproperties ('EXTERNAL' = 'true'); 重命名外表 alter table...SQL查询或Dorado HSQL执行需要添加这一行 alter table test_db.dm_order_xxx_b set tblproperties ('EXTERNAL' = 'FALSE'
另一个可能出现的问题是,如果应用需要逆链反向查询,而非顺链而下查询,这时拼接无法工作。...对此,一种解决方法是过滤掉特定查询和变更。具体而言,应用遍历 Schema 中所有的查询和变更,并与给定的列表做对比。如果查询存在于列表中,则设为可见。如果不在列表中,就从 Schema 中移除。...下面给出一些有助于构建可维护 GraphQL API 的小建议: 类型和枚举的命名必须唯一。...例如,如果需要对 Product 添加一个状态,建议命名为 ProductStatus,而不要直接使用 Status,以免出现类型冲突问题。 建议在查询中添加过滤,以免额外单独编写查询。...推荐一个 很好的查询实现例子,访问页面右侧的“doc”选项卡, 并搜索 assetFilter。 对查询和变更定义自己的命名规则,以简化对查询和变更的查找。 在使用查询分页时,设置默认值和最大上限。
建议字段定义为NOT NULL三.索引规范1.索引必须按照“idx_表名_字段名称”进行命名2.索引中的字段数建议不超过5个3.单张表的索引数量控制在5个以内4.对字符串使用前缀索引,前缀索引长度不超过...2.禁止有super权限的应用程序账号存在3.不在MySQL数据库中存放业务逻辑4.不在业务高峰期批量更新、查询数据库5.提交线上建表改表需求,必须详细注明所有相关SQL语句六.FAQ1.INT[M],...因为ORDER BY rand()会将数据从磁盘中读取,进行排序,会消耗大量的IO和CPU,可以在程序中获取一个rand值,然后通过在从数据库中获取对应的值。9.如何减少与数据库的交互次数?...当MySQL查询不能使用索引时,MySQL会进行全表扫描,会消耗大量的IO。12.为什么一张表中不能存在过多的索引?...覆盖索引的概念就是查询可以通过在一个索引中完成,覆盖索引效率会比较高,主键查询是天然的覆盖索引。合理的创建索引以及合理的使用查询语句,当使用到覆盖索引时可以获得性能提升。
前言 身为一名前端工程师,对于 SQL了解程度并不是很深刻,盘点一些个人工作遇到的问题,给大家普及下知识,以及记录自己如何解决这些问题的。 导航 SELECT 语句不区分大小写?...解决方案 使用 ORDER BY FIELD() 使用 ORDER BY FIND_IN_SET() SELECT `key`, `value` FROM `config` WHERE `key` IN...三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。...也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。...app 或 h5 开头的命名空间的所有配置项,可以使用 LIKE语句。
(应用中需要同时有唯一性检查逻辑。) 触发器命名 trg_表名_操作。 函数过程命名 采用动词+名词的形式表达其含义。...、如无备注,排序字段order_id在程序中默认使用降序排列; 12、整形定义中不添加长度,比如使用INT,而不是INT[4] INT[M],M值代表什么含义?...覆盖索引的概念就是查询可以通过在一个索引中完成,覆盖索引效率会比较高,主键查询是天然的覆盖索引。合理的创建索引以及合理的使用查询语句,当使用到覆盖索引时可以获得性能提升。...索引的基本规范 1、索引数量控制,单张表中索引数量不超过5个,单个索引中的字段数不超过5个。 综合评估数据密度和分布 考虑查询和更新比例 为什么一张表中不能存在过多的索引?...DBA参与 对特别重要的库表,提前与DBA沟通确定维护和备份优先级 不在业务高峰期批量更新、查询数据库其他规范 提交线上建表改表需求,必须详细注明所有相关SQL语句 其他规范 日志类数据不建议存储在MySQL
数据实体 通常情况下,一个项目的数据实体中字段并不是完全没有规律可寻。通常情况下,必须有一个主键。有些时候,会要求在数据表中增加上次修改时间和创建时间,以及创建人和修改人的主键。...CreateTime { get; set; } } } 看上述代码里,命名空间并不在Data里,而是在Data.Infrastructure里。...这个命名空间 Infrastructure 用来存放一些项目的架构类或者接口,里面还会其他的类。...常见数据操作接口 在正常开发中,一个完整的数据操作接口会有很多分类,但是很多时候我们需要分开增删改和查询这两种操作。...也是简单的跟大家分享一下我在实际工作中写代码的总结。
order_id在程序中默认使用降序排列; 整形定义中不添加长度,比如使用INT,而不是INT[4] INT[M],M值代表什么含义?...覆盖索引的概念就是查询可以通过在一个索引中完成,覆盖索引效率会比较高,主键查询是天然的覆盖索引。合理的创建索引以及合理的使用查询语句,当使用到覆盖索引时可以获得性能提升。...索引的基本规范 索引数量控制,单张表中索引数量不超过5个,单个索引中的字段数不超过5个。 综合评估数据密度和分布 考虑查询和更新比例 为什么一张表中不能存在过多的索引?...DBA协助排查 推广活动或上线新功能必须提前通知DBA进行流量评估 数据库数据丢失,及时联系DBA进行恢复 对单表的多次alter操作必须合并为一次操作 不在MySQL数据库中存放业务逻辑 重大项目的数据库方案选型和设计必须提前通知...DBA参与 对特别重要的库表,提前与DBA沟通确定维护和备份优先级 不在业务高峰期批量更新、查询数据库其他规范 提交线上建表改表需求,必须详细注明所有相关SQL语句 其他规范 日志类数据不建议存储在MySQL
基础规范 使用InnoDB存储引擎 表字符集默认使用UTF8,如果涉及到用户输入应当校验字符范围,emoji需要使用UTF8MB4 所有表都需要添加注释 单表数据量建议控制在5000W以内 不在数据库中存储图...⽚、文件等大数据 禁止在线上做数据库压力测试 禁⽌从测试、开发环境直连线上数据库 命名规范 库名、表名、字段名禁⽌止超过32个字符。...SQL优先考虑覆盖索引 避免冗余和重复索引 索引要综合评估数据密度和分布以及考虑查询和更新比例 索引禁忌 不在低基数列上建立索引,例如“性别” 不在索引列进行数学运算和函数运算 尽量不使用外键,数据库是稀缺资源...在SQL语句中,禁止使用前缀是%的like 使⽤预编译语句,只传参数,比传递SQL语句更高效;一次解析,多次使用;降低SQL注入概率 禁止使⽤‘order by rand()’ SQL中避免出现now(...禁⽌在线上从库执行后台管理和统计类查询。 禁⽌有super权限的应用程序账号存在。 推广活动或上线新功能必须提前通知DBA进⾏行流量评估。 不在业务高峰期批量更新、查询数据库。
在数据库中存储图、文件等大数据 6. 禁止在线上做数据库压力测试 7. 禁从测试、开发环境直连数据库 **二、命名规范 1. 库名、表名、字段名禁止超过32个字符。须见名之意 2....5、索引禁忌 (1) 不在低基数列上建立索引,例如“性别” (2) 不在索引列进行数学运算和函数运算 6、尽量不使用外键 (1) 外键用来保护参照完整性,可在业务端实现 (2) 对父表和子表的操作会相互影响...,降低可用性 7、索引命名:非唯一索引必须以 idx_字段1_字段2命名,唯一所以必须以uniq_字段1_字段2命名,索引名称必须全部小写 8、新建的唯一索引必须不能和主键重复 9、索引字段的默认值不能为...较大要配合子查询使用 (20) 禁止在数据库中跑大查询 (21) 使预编译语句,只传参数,比传递SQL语句更高效;一次解析,多次使用;降低SQL注入概率 (22) 禁止使order by rand()...(7) 禁有super权限的应用程序账号存在 (8) 推广活动或上线新功能必须提前通知DBA进行流量评估 (9) 不在业务高峰期批量更新、查询数据库 收藏那么多python资料干嘛,这一本就够你从入门到入土了
在这种情况下,扫描整个索引并查找表行以查找不在索引中的列可能比扫描表和对结果排序更昂贵。如果是这样,优化器可能不使用索引。如果SELECT*只选择索引列,则使用索引并避免排序。...; ---- 不会使用索引: 查询中,order by 中的列是非连续的部分索引 SELECT * FROM t1 WHERE key2=constant ORDER BY key1_part1, key1...例如,对于内存表中的哈希索引 SELECT ABS(a) AS a FROM t1 ORDER BY a; 该查询使用到了别名,别名覆盖了查询列明,order by 不能使用索引 ---- FileSort...文件排序在查询执行中构成了一个额外的排序阶段。 ...路径应该命名位于不同物理磁盘上的文件系统中的目录,而不是同一磁盘上的不同分区。
领取专属 10元无门槛券
手把手带您无忧上云