草庐IT

show_guides

全部标签

mysql - 主键作为 INT,全局键作为 GUID,以提高性能

在决定表的键时,表有一个INT主键(自动增量)和数据库范围有一个GUID(除了INT)是否好?鉴于将有更多的表DML语句,对INT进行操作会更快,而如果要执行任何泛数据库DML语句,GUID将派上用场。请注意我正在使用MySQL,以防万一。请发表意见。 最佳答案 我以前做过并且成功了:正如你所指出的,使用GUID意味着我们在合并时避免了冲突,比如说,来自一个数据库的数据与另一个数据库,并且int为我们提供了高效的连接等。当您处理OLAP时,我永远不会使用GUID作为键,因为那样会提高性能。

MySQL show create table 显示带有 KEY 的额外条目

我有一个包含组合主键(X,Y,Z)的表,当我显示创建表时它会执行`X`int(10)unsignedNOTNULL,`Y`int(10)unsignedNOTNULL,`Z`int(11)NOTNULL,`C`bigint(20)NOTNULL,PRIMARYKEY(`X`,`Y`,`Z`),KEY`Y`(`Y`),KEY`Z`(`Z`),CONSTRAINT`T_ibfk_1`FOREIGNKEY(`X`)REFERENCES`X_T`(`X`),CONSTRAINT`T_ibfk_2`FOREIGNKEY(`Y`)REFERENCES`Y_T`(`ID`),CONSTRAINT`T

mysql - 为什么 SHOW ERRORS 不记录在 MySQL 存储过程中抛出的 SQL 异常?

在MySQL存储过程中,我正在处理SQL异常:DECLAREEXITHANDLERFORSQLEXCEPTIONBEGINSELECT"SQLexceptionoccured."AS"SQLException";SHOWERRORS;SHOWWARNINGS;ROLLBACK;END;我知道正在抛出异常,因为正在显示SQLexceptionoccurred消息并且事务被回滚。但是,SHOWERRORS或SHOWWARNINGS表中未填充任何内容。这是为什么,我如何判断抛出了哪个SQL异常?这是导致神秘异常的SQL语句:SELECTIF(count(*)=0,TRUE,FALSE)FRO

mysql - 为什么 "SHOW GLOBAL STATUS"会出现在慢日志中?

我经常检查我的一个MySQL复制服务器上的慢速日志,发现最常见的慢速查询是SHOWGLOBALSTATUS,平均运行时间为914秒。我已经知道它为什么在那里(一个监控探测器正在生成请求),我的问题是为什么它需要这么长时间才能运行?服务器正在运行MySQLServer5.0.95。 最佳答案 SHOWGLOBALSTATUS从名为INFORMATION_SCHEMA.GLOBAL_VARIABLES的表中读取,该表是一个MEMORY表,更新时需要全表锁。如果正在进行的操作会更改全局变量,SHOWGLOBALSTATUS将不得不等待此操

mysql - SHOW CREATE PROCEDURE 与 perl DBI 不一致的结果

将“SHOWCREATEPROCEDUREfoo”通过管道传输到mysql结果中,在标有“CreateProcedure”的列中包含完整的过程定义。然而,$dbh->selectrow_hashref("SHOWCREATEPROCEDUREfoo");导致$ref->{'CreateProcedure'}为undef,并正确填充其他列。两者都在具有相同凭据的同一台机器上执行。有谁知道为什么吗? 最佳答案 如果您连接的用户无权查看该过程,您将看到此内容。尝试在命令行中使用相同的用户,我猜您会看到CreateProcedure列为NU

mysql - MySQL 中的 Hibernate 和 Com_show_warnings == Com_select

当查看我的MySQL上的SHOWGLOBALSTATUS时,它显示Com_select和Com_show_warnings或多或少相等。这意味着Hibernate为它执行的每个查询执行SHOWWARNINGS。有没有办法禁用它?谷歌没有帮助:/ 最佳答案 如thisblogpost中所述,当我们将日志级别设置为warn或更高时,hibernate会强制我们使用SHOWWARNINGS。这是该代码的一部分:publicvoidhandleAndClearWarnings(Connectionconnection,WarningHand

sql - 在 SQL 中,为什么在子查询中不使用 "Distinct",在其他表中查找某些项目 "not showing up"?

通常在查找其他表中没有出现的项目时,我们可以使用:select*fromgiftswheregiftIDnotin(selectgiftIDfromsentgifts);或select*fromgiftswheregiftIDnotin(selectdistinctgiftIDfromsentgifts);第二行添加了“distinct”,这样生成的表格就更小了,可能也让搜索“notin”的速度更快了。那么,使用“distinct”不是很可取吗?通常,在这种情况下,我看不到它在子查询中使用。使用它有优势还是劣势?谢谢。 最佳答案 S

mysql - 无法在 MySQL 中删除 "MUL"键/索引 - SHOW 中列出的列

我在CentOs5上使用mysql-server-5.0.45-7.el5。在我的数据库中,有一个表,我不知道什么时候创建了一个MUL键(数据库是共享的,在一个组的控制下),现在当我尝试插入一些值时,我得到了一个如上所示的错误:Duplicateentry'2-1-2004-09-1113:13:41.526'forkey2:INSERTINTOephemerisSETEPH_TYPE_ID=1,FILENAME='CBERS_2_CCD1_DRD_2004_09_11.13_13_23',ID=0,IS_NEW=1,SATELLITE_ID=2,TIME='2004-09-1113:

mysql - 相当于 MySQL 的 "SHOW VARIABLES"的 SQL 服务器

我需要从SQLServer数据库中检索一些信息。例如,我想授权的数量,查询连接的数量或其他......使用MySQL数据库,我可以通过以下查询获得它:SHOWVARIABLES;这会返回如下结果:是否有SQLServer的等效项? 最佳答案 sp_configure将显示当前配置参数。有关其他信息,请参阅相应的catalogview或managementview.例如。sys.dm_exec_connections将显示连接数,sys.dm_exec_requests将显示正在执行的请求等等。

mysql错误: 1292 Incorrect datetime value showing a date that doesn't exist

此存储过程出现错误:DELIMITER$$CREATEDEFINER=`root`@`localhost`PROCEDURE`populateTimeTable`(INtable_nameVARCHAR(45),INstart_dateDATE,INend_dateDATE)BEGINDECLAREfull_dateDATE;SET@query_create=CONCAT('CREATETABLEIFNOTEXISTS',table_name,'(idDateINT(8)UNSIGNEDNOTNULL,dateDATENOTNULL,yearSMALLINT(4)UNSIGNEDNOT