这是我的MySQL查询:
SELECT [columns] FROM article a
LEFT JOIN category_article ca ON a.id=ca.aid
LEFT JOIN category c1 ON c1.id=ca.cid
LEFT JOIN navigation n ON n.cid=c1.id
LEFT JOIN navigation nn ON nn.id=n.parent
LEFT JOIN category c2 ON nn.cid=c2.id
GROUP BY a
我们正在工作的一个新项目需要大量的数据分析,但我们发现这是非常缓慢的,我们正在寻找方法来改变我们的方法与软件和/或硬件。
我们目前在亚马逊ec2实例(Linux)上运行:
High-CPU Extra Large Instance
7 GB of memory
20 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each)
1690 GB of instance storage
64-bit platform
I/O Performance: High
API name: c1.xlarge
processor
为什么像这样的东西不起作用?
mysql> SELECT * FROM employees FORCE INDEX(emp_no) WHERE emp_no = '77899';
这里的桌子是这样的:
+------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
|
我知道应该在表..for示例中调用哪一列
表名为“table1”,列名为“name”,搜索为"$query";
现在我像这样查询MySQL
mysql_query("SELECT * FROM table1 WHERE name='$query'");
这是打电话的正确方式吗??我觉得这需要更多的时间。有什么建议吗?
因此,当我尝试使用
SELECT views, keywords, title, url, thumbnail,
MATCH(keywords,title) AGAINST ('%$search_value%') AS relevance
FROM straight
WHERE MATCH (keywords,title) AGAINST ('%$search_value%')
ORDER BY relevance DESC
这是因为我没有启用FULLtext搜索,但我似乎无法启用它。当我运行下面的sql时:
ALTER TABLE
非常奇怪的是:
mysql> explain select *from online where last < now()-interval 30 second and type=1;
+----+-------------+--------+------+---------------------------------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | ke
查询A
Select id from jobs;
| 55966 |
| 55971 |
+-------+
10705 rows in set (0.00 sec)
查询B
Select id from jobs where status = 0;
| 55966 |
| 55971 |
+-------+
7933 rows in set (**20.22 sec**)
有一个关于状态的索引。
mysql> explain select id from jobs where status = 0;
+----+-------------+-------+------+-------
在一个以制表符分隔的文件中,我有1800列和大约400万行。我正在尝试将它加载为mysql关系。Mysql给了我ERROR 1117 (HY0000): Too many columns。我在网上查了一下,发现MySQL无法处理这么大的数据,一些建议是对表进行垂直分区。
我正在寻找一个关于如何对其进行分区以及如何在已分区的表上执行select查询的示例。
谢谢
我在mysql数据库中有一张表。我的查询看上去像是
SELECT device_id,date,timestamp,power,floor
from tableData
where date=%s
and floor=%s
order by timestamp desc
limit 1
为了更快的结果,我在我的表上创建了索引。我的索引:
+------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+-----
我有一个带有一个大表的SQL 2005数据库。我已经运行了一个删除,从表中删除一些项目,我想将空间释放回操作系统。
我尝试了以下命令
DBCC SHRINKDATABASE (MyDB, TRUNCATEONLY);
DBCC SHRINKFILE (MyTable, TRUNCATEONLY);
我还使用以下命令重新构建了聚集索引
ALTER INDEX [IX_Clustered] ON [dbo].[MyTable] REBUILD WITH ( PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON,
我有索引列'unique_identifier‘。当我使用索引列获取数据时,它不是使用索引获取的。
mysql> show index from stock_index_table;
+-------------------+------------+-------------------+--------------+-------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table
我在一个很大的表(大约3700万行)上有一个非常简单的查询。这个查询需要10分钟以上的时间来运行,并且应该很快,因为索引的构建是正确的(我认为)。我不明白为什么这个查询花了这么长时间。我希望有人能指引我正确的方向:
查询:
select type_id, sub_type_id, max(settlement_date_time) as max_dt
from transaction_history group by type_id, sub_type_id
Create语句:
CREATE TABLE `transaction_history` (
`transaction_histo
有人能帮我解决问题吗。我有partion表( F_BUNDLCOL表示P5、6、7和8)。我不知道为什么当我选择数据从P5,7,8它非常快(只有0.26秒)
SELECT ri,rowid FROM creactor.F_BUNDLCOL WHERE part=5 AND status='0' and rownum<10
RI ROWID
---------- ---------------------------------------------------------------------------
227122 *BAXAClgCwQ
让我们从一个简单的例子开始:
CREATE TABLE `test` (
`id` INT UNSIGNED NOT NULL,
`value` CHAR(12) NOT NULL,
INDEX (`id`),
INDEX (`value`)
) ENGINE = InnoDB;
所以两列都被索引了。我认为这意味着MySQL不再需要读取实际的表了,因为所有的数据都存储在索引中。
mysql> EXPLAIN SELECT id FROM test WHERE id = 1;
+----+-------------+-------+------+---------------+------
我需要执行一个检查列值是2117还是0的请求。
目前,我用OR来做这个
select [...] AND (account_id = 2117 OR account_id = 0) AND [...]
因为我面临性能问题,所以我在想,这样做是不是更好
select [...] AND account_id IN (0, 2117) AND [...]
“解释”命令在这两种情况下都给出了类似的结果。所以,也许它更多地是关于优化解析阶段,而不是其他任何事情。或者这两种方法是完全等价的,并且被mySQL优化了,我不应该在意。
在mySQL网站上,他们这样谈论OR优化:
使用x= ANY (包含(1,
我试着制定一个数据库方案。我只是想知道哪种方法比其他方法更好。我有两种方法来完成我的数据库中的搜索任务。条件如下:我有多个表名为table1,table2..tablen具有相同的结构,表示不同的位置。
我的工作方式如下:
使用my TABLES的UNION并使用查询(如:Select * from my_view where my_condition;)创建视图。
通过使用简单的UNION运算符并使用如下所示的查询:
select * from table1 where my_condition UNION select * from table2 where my_conditio