[{"data":1,"prerenderedAt":182},["ShallowReactive",2],{"project-40947230":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":32,"aspects":33,"strip":37,"post_text":39,"what":40,"said":72,"maker_in_thread":117,"shape":124,"grid":128,"attempts":145,"same_week":146,"maker_shows":30,"maker_hidden":174,"reader_version":175,"card":176},"40947230","MySQL EXPLAIN","A tool to visualize MySQL EXPLAIN query plans","title","Show HN: I made a tool to visualize MySQL EXPLAIN query plans","https:\u002F\u002Fmysqlexplain.com","mysqlexplain.com","tpetry",1720802966,2024,19,8,1951,3515,56,"shown","dev_tools","query plan visualizer","web_app",[24,21,25,26],"mysql explain","mysql optimization","slow query","curious",0.353,{"positive":30,"neutral":30,"mixed":31,"critical":31},3,0,6,{"design":34,"execution":35,"docs":36},{"positive":31,"critical":31},{"positive":31,"critical":31},{"positive":31,"critical":31},[31,30,30,38,38,30,31,38],5,"I was always confused when trying to optimize a slow MySQL query as the output of the EXPLAIN command is so cryptic and totally useless. And there wasn't any tool that could help visualize what a query does - compared to PostgreSQL which has multiple... So, I started developing such a tool for MySQL. But boy, I didn't expect how complicated this is in reality. There were so many things hiding in tiny information pieces that I had to understand. But it also confirmed me in that a tool should try to understand the EXPLAIN output and not a human as it is too easy to oversee something. After month",{"problem":41,"audience":47,"pricing":52,"motivation":53,"time_to_build":57,"stack":61,"openness":70,"stage":71,"team_size":70},{"value":42,"source":43,"evidence":44},"MySQL EXPLAIN output is cryptic and hard to act on when optimizing slow queries","maker",[45],{"id":46},"post",{"value":48,"source":49,"evidence":50},"developers optimizing slow MySQL queries","inferred",[51],{"id":46},null,{"value":54,"source":43,"evidence":55},"Maker was confused by EXPLAIN output and found no visualization tool for MySQL comparable to PostgreSQL",[56],{"id":46},{"value":58,"source":43,"evidence":59},"months of work",[60],{"id":46},[62],{"value":63,"source":64,"evidence":65},"React Flow used for the diagram visualization","commenter",[66],{"id":67,"by":68,"text":69},"40970643","0x073","Should be https:\u002F\u002Freactflow.dev","unknown","launched",{"praise":73,"objections":93,"requests":94,"questions":108,"alternatives":116},[74,89],{"value":75,"source":64,"evidence":76},"Looks cool and useful",[77,81,85],{"id":78,"by":79,"text":80},"40947412","iambateman","This looks so cool, thanks for sharing! So grateful for little tools like this.",{"id":82,"by":83,"text":84},"40947790","PeterZaitsev","Very cool!",{"id":86,"by":87,"text":88},"40947391","rawfan","Great result. Can’t wait to use this on my codebase!",{"value":90,"source":64,"evidence":91},"Plans to use it on their codebase",[92],{"id":86,"by":87,"text":88},[],[95,102],{"value":96,"source":64,"evidence":97},"Examples of usage",[98],{"id":99,"by":100,"text":101},"40951460","nektro","would love to see examples",{"value":103,"source":43,"evidence":104},"API integration with database tools like DataGrip",[105],{"id":106,"by":11,"text":107},"40947474","Oh totally forgot to mention: There‘s also an API to skip the manual steps needed on the website. So I plan on integrating it into database tools like DataGrip etc.",[109],{"value":110,"source":64,"evidence":111},"Which visualization library was used",[112],{"id":113,"by":114,"text":115},"40954725","cddotdotslash","This is nice! Did you use a library for the visualization part (the dotted background with the zoom\u002Fpan)?",[],{"comments":118,"answered":31,"key":119},2,[120,121],{"id":106,"text":107},{"id":122,"text":123},"40952193","There are examples: Directly at the bottom of the black frame where you have to input the data.",{"commenters":125,"max_depth":118,"maker_replies":118,"first_comment_mins":126,"lifespan_hours":127},7,15,74,[129,132,134,136,138,139,142,144],[106,31,31,130,11,131],"project\u002Fpositive\u002Fidea",1,[113,131,30,133,114,31],"project\u002Fneutral\u002Fdesign",[67,131,30,135,68,31],"project\u002Fneutral\u002Fexecution",[78,118,38,137,79,31],"project\u002Fpositive\u002Fnone",[86,30,38,137,87,31],[99,140,30,141,100,31],4,"project\u002Fneutral\u002Fdocs",[122,140,31,143,11,131],"maker\u002Fneutral\u002Fdocs",[82,38,38,137,83,31],[],[147,152,157,162,166,170],{"id":148,"name":149,"points":150,"category":151},"40956087","Resurrecting a dead Dune RTS game",485,"games",{"id":153,"name":154,"points":155,"category":156},"40972122","Horizon",361,"web_saas",{"id":158,"name":159,"points":160,"category":161},"40960508","Buzzinga",284,"consumer_social",{"id":163,"name":164,"points":165,"category":20},"40952509","CSS grid generator",262,{"id":167,"name":168,"points":169,"category":20},"40961101","Kaskade",164,{"id":171,"name":172,"points":173,"category":20},"40980715","Magic-cli",158,false,"v2",{"id":177,"name":5,"line":6,"ai":174,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":178,"top":18,"kw":179,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":180,"url":9,"mix":181,"praise":75,"objection":-1,"sub":21},40947230,0.35,[24,21,25,26],"03355305",[30,30,31,31],1793991095702]