小编Sim*_*tal的帖子

查询数据库的记录以获得几乎相似的匹配字符串值

场景是我有一个包含地址城市字段的大约500,000条记录的庞大数据库,其中没有这样的标准方式来插入值,因此多个用户,例如一些已将城市值插入班加罗尔而另一个已插入其城市价值为begaluru或benglore(拼写错误)

同样在地址 字段的情况下,具有多个记录的相同用户已插入其地址值但是值不是特别相同的例如Mountville park Thomas gateMontlee park thonas gte.

我需要获取所有那些具有相同和几乎相似的值(不知何故)的地址城市的记录.

有没有办法让这些记录具有几乎相似但无法比拟的值?

谢谢.

java mysql

5
推荐指数
1
解决办法
617
查看次数

mysql查询起先慢后快

我有2个myISAM表,分别称为“测试”和“ completed_tests”,一个表有170个条目,另一个表有118k条目。当我运行此查询时:

SELECT ct.archive, ct.status, ct.score, ct.users_LOGIN, t.lessons_ID, t.content_ID, t.keep_best 
 FROM completed_tests ct,tests t 
WHERE ct.status != 'deleted' and ct.status != 'incomplete' and t.id=ct.tests_ID and t.lessons_ID=10;
Run Code Online (Sandbox Code Playgroud)

然后大约需要30秒才能完成。随后对同一查询或相关查询的调用(例如,不同的lessons_ID)更快。即使我重置查询缓存或重新启动mysql服务器,它们仍然保持更快的速度。我想这意味着表被缓存到内存中(并留在那里)。我的问题是,该特定查询似乎在运行此应用程序的高流量站点上引起了问题(我想这是因为服务器的内存不足并清空了其缓存?)。我的问题是:

  • 有没有办法在我的系统上一致地复制30英寸的延迟,所以我可以尝试优化查询?例如,是否应该清空系统的缓存?
  • 有没有一种方法可以优化上面的查询?运行解释会给出:

运行说明给出:

mysql> explain SELECT ct.archive, ct.status, ct.score, ct.users_LOGIN, t.lessons_ID, t.content_ID, t.keep_best FROM completed_tests ct,tests t WHERE ct.status != 'deleted' and ct.status != 'incomplete' and t.id=ct.tests_ID and t.lessons_ID=10;
+----+-------------+-------+------+-----------------+----------+---------+---------------+------+-------------+
| id | select_type | table | type | possible_keys   | key      | key_len | ref           | rows | Extra       | …
Run Code Online (Sandbox Code Playgroud)

mysql performance

5
推荐指数
1
解决办法
3568
查看次数

查找列表是否包含特定的 numpy 数组

import numpy as np

a = np.eye(2)
b = np.array([1,1],[0,1])

my_list = [a, b]
Run Code Online (Sandbox Code Playgroud)

a in my_list返回true,但b in my_list返回“ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()”。我可以通过首先将数组转换为字符串或列表来解决这个问题,但是有没有更好的(更 Pythonic)的方法来做到这一点?

python numpy

5
推荐指数
1
解决办法
1313
查看次数

如何在mysql中存储存储过程的返回值

虽然Stack Overflow中有很多关于这个问题的问题但是我无法正确解决这个问题,任何人都可以帮我解决这个问题,让我们说有两个存储过程,

CREATE PROCEDURE `procOne`(stName varchar(7),fullItemCode varchar(12), fullLedNo varchar(12))
BEGIN
set @x = concat('
SELECT ID, Uprice FROM ',stName,' 
where Uprice > 0 and FulItmCode="',fullItemCode,'" and FullLedgerNo = "',fullLedNo,'" order by Dat desc limit 1;
');
PREPARE stmt FROM @x;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END
Run Code Online (Sandbox Code Playgroud)

CREATE PROCEDURE `prcTwo`()
BEGIN

CREATE TEMPORARY TABLE tmpStore (
  ID int(10),
  Uprice decimal(18,2)
)

insert into tmpStore exec procOne(@param1, @param2) 

select * from tempStore; 

DROP TABLE tmpStore;

END
Run Code Online (Sandbox Code Playgroud)

我试过这个,但在尝试保存时遇到以下错误 prcTwo

ERROR 1064: You …
Run Code Online (Sandbox Code Playgroud)

mysql stored-procedures

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

从 .frm 文件检索 MySQL 表架构以创建 SQL 脚本

我最近从我的供应商那里收到了一个 MySQL 数据库(其合同现已关闭),并按照他们的说明在本地主机上设置 PHP 和 MySQL,但是使用 phpMyAdmin 界面我只能看到 DB 目录中可见的一些表。

我注意到我能够在 phpMyAdmin 中看到(和查询)的那些表实际上具有所有 3 种文件类型(.frm .MYD .MYI),但“丢失”的文件只有一种类型(.frm)。

如何使用 .frm 文件(即架构)创建 SQL 脚本以允许我重新生成完整的表?

php mysql

3
推荐指数
1
解决办法
7988
查看次数

使用LIMIT,索引扫描无法正常工作

我在PostgreSQL 9.1中做了简单的实验.我创建test了如下表:

CREATE TABLE test
(
  id serial NOT NULL,
  CONSTRAINT id PRIMARY KEY (id )
)
CREATE INDEX id_idx
  ON test
  USING btree
  (id );
Run Code Online (Sandbox Code Playgroud)

然后我添加一些数据:

insert into test values(DEFAULT);
insert into test values(DEFAULT);
insert into test values(DEFAULT);
...many times :)
Run Code Online (Sandbox Code Playgroud)

现在我有test10'000排的桌子.我的第一个实验是获取行id:

explain select * from test where id = 50;

Index Scan using id_idx on test  (cost=0.00..8.27 rows=1 width=4)
  Index Cond: (id = 50)
Run Code Online (Sandbox Code Playgroud)

好的,这里没什么奇怪的.让我们按值范围进行查询:

explain select * from test where id …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

3
推荐指数
1
解决办法
200
查看次数

数据库列int限制

如何将数据库列的整数输入限制为特定的位数?

CREATE TABLE tab (id INT <1 digit> not null, value INT <10 digits> not null);
Run Code Online (Sandbox Code Playgroud)

谢谢

mysql sql

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

使用PHP读取.txt文件并将信息存储到变量中

我有两个文本文件,我需要阅读

log.txt 

2013/04/20 01:08:11
Run Code Online (Sandbox Code Playgroud)

data.text

MANUFACTURER: SISYSTEM
MODELNAME: DX1
BIRTHDATE: 19710108
SEX: M
Run Code Online (Sandbox Code Playgroud)

对于log.txt,我需要存储第一行的日期并将其保存到mySQL数据库中.

对于data.txt,我需要将每行的信息存储到变量中.即:

$manufacturer = SISYSTEM;
$modelname = DX1;
$birthdate =  19710108;
$sex = M;
Run Code Online (Sandbox Code Playgroud)

对于log.txt,我只需使用fget读取第一行并存储到一个变量中.但是,对于data.text,我无法弄清楚如何在循环中存储多个变量.这是我到目前为止所做的,但我不知道每次通过while循环时如何将值分配给新变量.任何帮助表示赞赏!

<?PHP

$file_handle = fopen("data.txt", "r");

while (!feof($file_handle) ) {

   $line_of_text = fgets($file_handle);
   $parts = explode(':', trim($line_of_text) );


}

fclose($file_handle);

?>
Run Code Online (Sandbox Code Playgroud)

php text

0
推荐指数
1
解决办法
7387
查看次数

标签 统计

mysql ×5

php ×2

sql ×2

java ×1

numpy ×1

performance ×1

postgresql ×1

python ×1

stored-procedures ×1

text ×1