Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL性能_Mysql_Database_Performance_Indexing - Fatal编程技术网

MySQL性能

MySQL性能,mysql,database,performance,indexing,Mysql,Database,Performance,Indexing,我们有一个数据仓库,其非规范化的表从500K到600多万行不等。我正在开发一个报告解决方案,因此出于性能原因,我们正在利用数据库分页。我们的报告有搜索条件,并且创建了必要的索引,但是,在处理百万行表时,性能很差。客户端设置为总是知道总记录,因此我必须获取数据以及记录计数 我还可以做些什么来提高性能?我不是MySQL dba,他也没有提供任何东西,所以我不确定他在配置方面能做些什么 谢谢 如果对大型表进行分区并将部分存储在不同的服务器上,则查询的运行速度会更快 见: 还请注意,使用NDB表可以使用

我们有一个数据仓库,其非规范化的表从500K到600多万行不等。我正在开发一个报告解决方案,因此出于性能原因,我们正在利用数据库分页。我们的报告有搜索条件,并且创建了必要的索引,但是,在处理百万行表时,性能很差。客户端设置为总是知道总记录,因此我必须获取数据以及记录计数

我还可以做些什么来提高性能?我不是MySQL dba,他也没有提供任何东西,所以我不确定他在配置方面能做些什么


谢谢

如果对大型表进行分区并将部分存储在不同的服务器上,则查询的运行速度会更快

见:

还请注意,使用NDB表可以使用在O(1)时间内查找的哈希键

对于行数,您可以在单独的表中保留一个运行总数,并更新该总数。例如,在插入后的
和删除后的
触发器中。
尽管触发器会减慢删除/插入的速度,但这会随着时间的推移而分散。请注意,您不必将所有总计保存在一行中,您可以存储每个条件的总计。比如:

table    field    condition    row_count
----------------------------------------
table1   field1   cond_x       10
table1   field1   cond_y       20

select sum(row_count) as count_cond_xy 
from totals where field = field1 and `table` = table1 
and condition like 'cond_%';
//just a silly example you can come up with more efficient code, but I hope
//you get the gist of it.
如果您发现自己总是在相同的条件下计数,这可以加快重新设计的
从bigtable中选择计数(x),其中…
从分钟增加到瞬间。

您应该使用“分区”

它的主要目标是减少为特定SQL操作读取的数据量,从而缩短总体响应时间

参考:


您考虑过数据分片吗?下面的示例有一个表,其中有5亿多行,运行时间为0.02秒。