小编Soy*_*cis的帖子

Python UTF8编码

我看过有关Python和编码的其他问题,但还没有找到解决我问题的方法。这里是:

我有一个小脚本,试图比较2个文件列表:

  1. 文本文件中给出的列表,应该以UTF8编码(至少Notepad ++会这样检测到该列表)。

  2. 我建立的目录清单如下:

    local = [f.encode('utf-8') for f in listdir(dir) ]
    
    Run Code Online (Sandbox Code Playgroud)

但是,对于某些字符,我没有得到相同的表示形式:在HEX编辑器中查看时,我发现在1中,字符é由给出,65 cc而在2中,字符由c3 a9... 给出。

我想要的是使它们具有相同的编码,无论它是什么。

python encoding utf-8

2
推荐指数
1
解决办法
375
查看次数

多列上的 Firebird SQL 索引

这是针对 Firebird 2.5 的。

我有一个表 T,其索引由 2 列组成,例如 ColA 和 ColB。如果我正在做 : SELECT * FROM T WHERE ColA=...,所以 WHERE 子句只在 A 列上,Firebird 会为列 ColB 设置默认值,以及索引的好处,还是根本不能使用这个索引?

一些上下文:我正在进行数据库升级。这是我所拥有的:

CREATE TABLE user(
     newid BIGINT NOT NULL,
     oldid BIGINT NOT NULL,
     anotherCol INT);

CREATE INDEX idx ON  user(oldid, anotherCol);
     
CREATE TABLE order(
     RefUser BIGINT);
  
Run Code Online (Sandbox Code Playgroud)

order.RefUser 是 oldid,我需要将它们更改为 newid。我使用这个查询来做到这一点:

UPDATE order o SET o.refuser = (SELECT u.newid FROM user u WHERE u.oldId = o.refuser);
Run Code Online (Sandbox Code Playgroud)

此时,oldid 仍然是唯一的,但稍后将仅保证 (oldid, anotherCol) 的唯一性,因此索引,以及 newid 的创建。

用户表是几百万条记录,订单表是几千万条:这个查询需要一个多小时。我想看看如何改进它(不热衷于在这段时间内关闭关键服务)。

sql firebird firebird2.5

2
推荐指数
1
解决办法
1141
查看次数

标签 统计

encoding ×1

firebird ×1

firebird2.5 ×1

python ×1

sql ×1

utf-8 ×1