草庐IT

OPTIMIZATION

全部标签

mysql - 调整 SSD MySql 性能

我正在测试与MySql一起使用的SSD,但看不到任何性能优势。这让我觉得我一定做错了什么。这是设置:Xeon55202.26Ghz四核12GB内存RAID1中的300GB15kRAID1中的64GBSSD为了测试,我移动了SSD上的mysql目录。我导入了一个包含300万行的表。然后导入同一个表,其中数据和索引目录符号链接(symboliclink)到15k驱动器。通过mysqldump的转储将数据加载到表中,15k驱动器显示比SSD更快的插入速率:15k~=35,800次插入/秒SSD!=27,000次插入/秒然后我通过执行'SELECT*FROMtableINTOOUTFILE'/

MySQL 大表 JOIN 使数据库崩溃

根据我最近的问题Selectinformationfromlastitemandjointothetotalamount,我在生成表时遇到了一些内存问题我有两个表sales1和sales2,如下所示:id|dates|customer|sale使用这个表定义:CREATETABLEsales(idintauto_incrementprimarykey,datesdate,customerint,saleint);sales1和sales2定义相同,但是sales2在每个字段中都有sale=-1。一个客户可以不在一个表中,也可以在一个表中,也可以在两个表中。两个表都有大约300.000条

php - 非常大的 SELECT 查询

请问有没有更快的方法来进行这个查询?实际上它需要大约100秒才能完成。我的表中有大约10000000(1GB)行。这是统计生成脚本。这是查询:$results=mysql_query("SELECT*FROMhawkeyeWHEREplayer_id='".$playerID."'")ordie("MYSQLERROR:".mysql_error());然后是php代码:$row=mysql_fetch_array($results)if($row["action"]==4){$commandcount++;}elseif($row["action"]==3){$chatcount++

MySQL - 哪个键更优化

假设我有一个大型数据库,其中包含成组的产品。假设有5个组,每个组有100,000个产品。产品ID是随机整数(群组ID也是)我需要在特定组中查找产品。我的问题是哪个主键更有效:(sid,pid)(pid,sid)sid,pid很直观,但是按这个顺序查找时,MySQL将不得不从500,000行中分离出100,000行,然后在100,000行中找到一个数字。另一方面,(pid,sid)对我来说听起来更优化,因为它会强制mysql在第一阶段不创建100,000大组,而是直接转到正确的项目(或向上如果不同的cids中有相似的pid,则为5项)。#2确实更快吗?更新:好的。我把一个真实的表复制了两

php - 在不杀死服务器的情况下更新用户排名的最佳方式

我有一个以用户排名为核心部分的网站,但用户数量已增长到50,000多个,这给服务器带来了压力,要循环遍历所有这些网站以每5分钟更新一次排名。是否有更好的方法可以至少每5分钟轻松更新一次排名?它不必与php一起使用,它可以像perl脚本一样运行,或者类似的东西可以更好地完成工作(尽管我不确定为什么会这样,只是离开我的选项在这里打开)。这是我目前更新排名的方法:$get_users=mysql_query("SELECTidFROMusersWHEREstatus='1'ORDERBYmonth_scoreDESC");$i=0;while($a=mysql_fetch_array($ge

mysql - 非规范化建议

我有一个学区数据库(大约15,000个,并且还在不断增加)以及每个学区的员工可用的退休计划/福利。数据已经很好地归一化了:区记录与0或n个退休计划选项相关联(其中n一个地区记录与0或n个yield相关联(其中n接近1个连接表中的40)地区还与其他一些事物相关联,其中关联的数量是名义上的。现在客户要报告。他们希望以一种非常动态的方式进行报告(想想iTunes智能播放列表,可以在其中为任何地区、计划或福利的任何属性(property)添加/删除规则)。我需要允许他们查询某个地区的任何属性(property)、其退休计划或其福利,并返回一切。为了(暂时)保持简单并避免重复数据,我设置了几个V

mysql - 有关如何优化此 MySQL 查询以更快运行的建议

SELECT*FROMmembersWHEREmemberidIN(SELECTfollows.followingidFROMfollowsWHEREfollows.memberid='$memberid'ANDfollows.followingidNOTIN(SELECTmemberidFROMuserblock))ANDmemberidNOTIN(SELECTblockmemberidFROMuserblockWHEREmemberid='$memberid')上面的查询在MySQL中执行需要将近4秒,我想知道是否有人对我如何改进/优化它以实现更快的执行时间有任何建议?

mysql - 前20组排名查询-优化

我正在创建一个报告结构,我需要为每个独特的公司-地区输出前20天的汇总统计数据。我已经完成了这个任务,但觉得我的代码过于复杂,我请求帮助优化它。我在这个过程中涉及2个表。第一个列出所有可能的公司-地区-集团-子集团。第二个具有按组-子组划分的每小时统计数据。SQLFiddle链接:http://sqlfiddle.com/#!9/29a7b/1注意:目前正在获取SELECTcommanddeniedtouser''@''fortable'table_stats'我的SQLFiddle上的错误,也希望能帮助解决这个问题。table_companies声明和虚拟数据:CREATETABLE

sql - MySQL查询帮助: how to deal with data in most-recent-row-per-day from a big dataset

我有一些复杂的表,我需要对其进行一些SQL查询构建/优化。目前很多用于获取我们需要的结果的逻辑都是在应用层完成的,由于全表遍历等导致性能很差。SQL不是我的强项,所以我想我会达到到SO人群中看看是否有人可以伸出援手。基础设施背景:数据库是MySQL5我们使用Java通过Hibernate访问这些数据这些表格的大部分内容都是相对静态的,“销售人员每小时绩效”表格除外,该表格包含一行,表示给定销售人员每天的每个小时处于事件状态(例如,调用或接听电话)以及该销售员一整天表现的运行记录。考虑到相关公司的销售人员数量,该表每天可以增长20K+行。数据对象我创建了一个合并了相关数据的表格设置的简化

mysql - 优化两个大表上的简单查询

我正在尝试提供一项功能,让我可以显示friend查看最多的页面。我的friend表有570万行,View表有530万行。目前我只想对这两个表运行查询并找到一个人的friend查看次数最多的20个页面ID。这是我现在的查询:SELECTpage_idFROM`views`INNERJOIN`friendships`ONfriendships.receiver_id=views.user_idWHERE(`friendships`.`creator_id`=143416)GROUPBYpage_idORDERBYcount(views.user_id)descLIMIT20这是解释的样子: