小编Ian*_*ott的帖子

在Python中,如何使用其他列表索引列表?

我想用这样的另一个列表索引列表

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
Idx = [0, 3, 7]
T = L[ Idx ]
Run Code Online (Sandbox Code Playgroud)

和T应该最终成为包含['a','d','h']的列表.

有没有比这更好的方法

T = []
for i in Idx:
    T.append(L[i])

print T
# Gives result ['a', 'd', 'h']
Run Code Online (Sandbox Code Playgroud)

python indexing list

108
推荐指数
6
解决办法
12万
查看次数

62
推荐指数
8
解决办法
7万
查看次数

ActiveRecord中多列的索引

在ActiveRecord中,有两种方法可以为多列声明索引:

add_index :classifications, [:species, :family, :trivial_names]
add_index :classifications, :species
add_index :classifications, :family
add_index :classifications, :trivial_names

第一种方法和第二种方法之间有什么区别吗?如果是这样,我何时应该使用第一个和第二个?

sql indexing activerecord ruby-on-rails

45
推荐指数
2
解决办法
2万
查看次数

获取查询集中元素的索引

我有一个QuerySet,让我们调用它qs,它由一些与此问题无关的属性排序.然后我有一个对象,让我们称之为obj.现在,我想知道在什么指数objqs作为有效越好.我知道我可以使用.index()Python或者可能循环qs比较每个对象obj,但是这样做的最佳方法是什么?我正在寻找高性能,这是我唯一的标准.

在Windows上使用Python 2.6.2和Django 1.0.2.

python django indexing django-queryset

37
推荐指数
6
解决办法
3万
查看次数

在MySQL中有效查询15,000,000行表

请考虑以下数据库表:

  • 表"消息"包含13,000,000行(每个消息一行).
  • 表"3,000,000行的用户"(每个用户一行).

以下查询用于获取一堆消息和相应的用户:

SELECT messages.id, messages.message, users.id, users.username
FROM messages
INNER JOIN users ON messages.user_id=users.id 
WHERE messages.id in (?, ?, ?, ? ... a total of 100 "?":s);
Run Code Online (Sandbox Code Playgroud)

在每个查询中提取100条消息.

"messages"的索引是id(主键,BIGINT 不是自动生成的)和user_id.

"users"在id(主键,INT自动生成)上建立索引.

数据库是使用MyISAM的MySQL.

目前查询需要超过3000毫秒才能执行,这使我感到困惑,因为"消息"被索引在"id"上,因此检索正确的行应该非常快.

我的问题是:鉴于描述场景和设置,是一个3000毫秒的查询时间"正常"或我错过了什么?如果需要进一步的详细信息,请告诉我.

更新#1:以下是表定义:

CREATE TABLE messages (
  id bigint(20) NOT NULL DEFAULT '0',
  user_id int(11) NOT NULL DEFAULT '0',
  message varchar(160) NOT NULL DEFAULT '',
  PRIMARY KEY (id),
  KEY user_id (user_id),
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE users (
  id int(11) NOT NULL DEFAULT …
Run Code Online (Sandbox Code Playgroud)

mysql indexing optimization query-optimization

26
推荐指数
2
解决办法
3226
查看次数

Firefox错误'找不到元素'

首先,这不是设置页面的理想方式,但是需要将脚本分发为1个文件.

我在一个带有javascript的xhtml文档的顶部有一个php脚本,并且在某些条件下使用XHR将查询字符串发送到页面本身.然后顶部的php激活,并将传递的内容存储为会话,然后自行终止(exit()).XHR是异步的,永远不会检查它是否返回内容.

但是在Firefox 3中,no element found每次发送XHR请求时,错误控制台都会抛出错误.此外,如果我使用退出程序exit('Done'),Firefox会抛出(完成)语法错误,就像将其插入可见DOM一样.这似乎不会发生在Opera中.

有没有更好的方法来存储已经生成的xhtml页面的会话?显然我可以XHR到另一个页面,但我更愿意将它全部保存在一个脚本上.Firefox是否将XHR请求视为对DOM的更新?我不知道它为什么发送这个错误.


更新正如我所说,firefox只在发出XHR请求时才会出错.该页面是有效的XHTML并且完美无缺,除非对页面本身发出XHR请求.

我想知道它为什么发送错误,因为它确实没有返回任何东西.

这是一个从对象发出ajax请求的javascript片段.它创建一个XHR对象,没有回调函数,并发布信息.不引用同一页面时,它可以正常工作.

 var saveState = { saveContent: function(updateActiveMenu) {
    var sendState = new ajaxObject(gV.url);
    if (!updateActiveMenu) {
        var storageContainer = document.getElementById("StorageContainer").innerHTML;
        var menu = document.getElementById("Nav").innerHTML;
        sendState.update("Containerstring="+urlencode(storageContainer)+"&Nav="+urlencode(menu)+"&Active="+gV.activeMenuItem, 'POST', true);    } }, }
Run Code Online (Sandbox Code Playgroud)

而php就是这样做的

if (isset($_REQUEST['Containerstring']) && isset($_REQUEST['Nav']) && isset($_REQUEST['Active'])) {
  $_SESSION['Containerarray'] = (saveContainer(regulateEscapes(urldecode($_REQUEST['Containerstring']))));
  $_SESSION['Navarray'] = (saveNav(regulateEscapes(urldecode($_REQUEST['Nav']))));
  $_SESSION['Active'] = $_REQUEST['Active'];
  exit('Done'); 
}
Run Code Online (Sandbox Code Playgroud)

我也知道我不应该使用innerHTML,但这是另一个故事


错误就是这个

Error: no element found
Source File: http://localhost/ajax.php?1244648094055 
Line: 1
Run Code Online (Sandbox Code Playgroud)

请注意,在我正在使用的php页面上,错误引用了一个永远不会被调用的查询字符串.

javascript php xhtml firefox xmlhttprequest

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

猜测C2DM是否已连接的方法

我正在尝试对是否可以接收C2DM消息进行最佳猜测估计.

我创建了一个应用程序,它依赖于在手机无法访问时将信息推送到手机.我知道C2DM不能保证交付,但我至少想知道什么时候可以传递消息; 当它不是我们回到我们自己的推送服务(并且实际上可以告诉我们什么时候连接).

我注意到即使没有登录谷歌帐户,Android上的C2DM仍会发出身份验证令牌; 消息似乎仍然在这个实例中传递,即使它声明它们不应该.如果未连接GTalk(防火墙或其他原因),则在请求身份验证令牌时根本不会返回任何响应.当手机处于飞行模式时,Auth令牌将返回到应用程序.这意味着它并不像检查互联网是否可用那么简单.我找不到一种可靠的方法来检查GTalk是否已登录.

同样,我不需要保证邮件的传递,但我至少想知道交付是否可行.有人有有趣的解决方案吗?

android google-talk android-c2dm

16
推荐指数
2
解决办法
7463
查看次数

关系表的最佳索引策略是什么?

关系表是表示多对多(m:n)关系的通用解决方案.

在最简单的形式中,它将引用两个相关表的外键组合到一个新的复合主键:

A        AtoB     B
----     ----     ----
*id      *Aid     *id
data     *Bid     data

应该如何编制索引以在每个JOIN情况下提供最佳性能?

  1. 聚集索引over(Aid ASC, Bid ASC)(无论如何,这是强制性的,我猜)
  2. 选项#1加上(Bid ASC, Aid ASC)的附加索引
  3. 或选项#1加上(Bid ASC)的附加索引
  4. 还有其他选择吗?可能是供应商特定的东西?

sql indexing database-design

11
推荐指数
1
解决办法
1911
查看次数

id!= id的意外表扫描

一个应用程序会导致我们的Sql Server 2005数据库负载过重.我们不控制运行此查询的应用程序每分钟一次:

select id,col1,col2,col3 from table where id != id
Run Code Online (Sandbox Code Playgroud)

注意id!= id,意味着行不等于它自己.不出所料,结果始终没有找到行.但是,每次运行此查询时,Sql Server都会执行聚簇索引扫描扫描!

id列定义为:

varchar(15) not null primary key
Run Code Online (Sandbox Code Playgroud)

查询计划显示"估计行数"的大量数字.有谁知道为什么Sql Server需要表扫描来找出明显的?

sql sql-server indexing sql-server-2005

11
推荐指数
2
解决办法
607
查看次数

10
推荐指数
2
解决办法
7395
查看次数