草庐IT

optimize-table

全部标签

java - 聊天服务器 : what's the best(optimized) way to save a conversation log

我正在用java构建一个简单的聊天服务器,用户可以在其中进行私有(private)对话。我想在服务器级别(而不是客户端)保存这些对话,以便我可以将它们作为对话日志服务列出给用户。我还在我的软件中使用MySQL作为数据库。我正在寻找的是一种保存这些对话的优化方式,也是一种稍后列出它们的快速方式。到目前为止,我考虑了2种实现方式。使用MySQL数据库和a)将对话连续保存为文本,但问题是有些对话非常大(很多字符),我可能无法保存整个对话b)连续保存对话的每一行,但是当我想列出整个对话时,这样会出现速度问题将每个对话保存在一个单独的文本文件中,但我担心会出现读/写问题,尤其是当用户(客户)写(

Mysql:什么是碎片表,为什么要对它们运行 OPTIMIZE?

最近我们开始优化一个从未遵循任何标准的数据库。我们想做以下事情。cleanupofunusedtables.optimizingdatatypesandindexes.tuningslowqueries.evaluatingmy.cnfconfigurationswithmysqltuner.plandsimilarones在这个过程中,我遇到了优化碎片表。这个碎片表是什么,这将如何影响功能和性能。为什么我应该在这些表上运行OPTIMIZE...?我相信这根本不会影响功能。如果不对请指正。预先感谢您的回复。问候,乌日 最佳答案 当您

python - SqlAlchemy + Mysql : Unable to drop tables due to IntegrityError

当我尝试重新初始化我的数据库时,我不断收到IntegrityError:sqlalchemy.exc.IntegrityError:(IntegrityError)(1217,'Cannotdeleteorupdateaparentrow:aforeignkeyconstraintfails')'\nDROPTABLEusers'()在我的init_db脚本中,我有:defmain(argv=sys.argv):iflen(argv)!=2:usage(argv)config_uri=argv[1]setup_logging(config_uri)settings=get_appset

php - MySQL 左连接 : Limit parent table

我正在尝试从数据库中获取结果,但将结果限制在右侧SELECTposts.text,comments.textFROMpostsLEFTJOINcommentsONcomments.postid=post.idLimit0,5如果有5条评论,上面将返回第一个帖子的5条评论。但是我想返回所有评论,但在5个帖子后停止查询。我该怎么做?抱歉,一开始我的问题有点不清楚,因为我写错了LEFTJOIN..这是我的问题的解决方案:SELECTposts.text,comments.textFROM(SELECT*FROMpostsLimit0,5)LEFTJOINcommentsONcomments.

mysql - "If value exists in table"- 有这样的东西吗?

我是mysql的新手,我需要一些帮助。我想从表中选择一个值存在的所有行,但不选择该值:例如:IDITEM--------------------1AA122S1AB2F452BB31313AA3F453F673A......类似于:SELECTID,ITEMFROMTABLE1IFItem"AA"ispresentexcept"AA"这将返回:1225,AB31,1,F45,F67,A执行此操作的实际查询是什么?谢谢 最佳答案 您可以使用group_concat()获取列表:SELECTID,group_concat(casewhe

php - Laravel 4.2 多对多关系 : Can't read from pivot table

我试图将JeffreyWay的多对多关系教程应用到我的私有(private)消息传递应用程序中,但我遇到了困难。我正在尝试获取与用户关联的2个对话,haha和hehe。但是,Laravel给我错误:Columnnotfound:1054Unknowncolumn'Conversations.user_id'in'whereclause'(SQL:select*from`Conversations`where`Conversations`.`user_id`=1)我的对话表中有这些数据:+---------+----------+|conv_id|name|+---------+----

java - 如何在 Hibernate 中复制 "SHOW TABLES"?

我正在尝试遍历我的所有表,以便我可以截断每个表(在我的每个JBehave测试开始时)。我以为我可以:ListallTables=session.createSQLQuery("SHOWTABLES").list();但是hibernate抛出SQLGrammarException,提示“未找到列'TABLE_NAME'。”我猜这是因为“显示表”查询实际上并未返回字符串列表。还有另一种方法可以使用Hibernate获取我所有表的列表吗? 最佳答案 尝试这样的事情:SELECTTABLE_NAMEFROMinformation_sche

PHP 和 MySQL : optimize database

我有一个包含超过10,000,000行的数据库。现在查询它可能需要几秒钟才能找到一些基本信息。这不是可取的,我知道最好的优化方法是尽可能减少行数,但现在我没有时间这样做。优化MySQL的最简单方法是什么?数据库以便在查询时花费的时间很短?我不介意数据库的大小,这并不重要,所以任何增加大小的优化都可以。我不太擅长优化,现在我已经设置了索引,但我不确定我能从那里得到多少。我最终会适本地缩减数据库,但是有没有快速的临时解决方案? 最佳答案 除了已经建议的索引之外,如果它们很大,您可能还需要查看分区表。PartitioninginMySQL

mysql - 良好实践 : table with more then one index?

对不起大家,我确实有这个包含3列的迷你表,但我将按一列或另一列列出值。1)可以让其中两列带有索引吗?2)每个表是否应该只有一个索引?3)在极限情况下,如果我们有一个包含100列的表,并且我们有50个列有索引,这样可以吗?谢谢,内存 最佳答案 有很多索引很好,甚至一张表上有多个索引,只要您正在使用它们。对您的查询运行EXPLAIN并检查正在使用的索引。如果有任何查询未使用的索引,那么它们不会给您带来任何好处,只会减慢对表的修改。应删除这些未使用的索引。如果您还没有这样做,您可能还想考虑多列索引。

mysql - 这个 alter table 查询有什么问题?

我正在尝试使用此查询将一列添加到mysql表中,但mysql提示语法错误。我看过很多来源,但我看不出这里有什么问题。mysql>ALTERTABLEdogadddateTIMESTAMP(14);错误:ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'(14)'atline1表名'狗',列名'日期' 最佳答案 DATE在MySQL中