我想针对其他一些分支(例如 Percona 服务器、MariaDB 以及可能的其他分支)对 MySQL 服务器 rpm 进行性能测试(又名烘焙)。我希望通过提出这个问题,我可以更好地理解设置适当性能测试背后的方法。我计划使用 sysbench 来运行我的实际测试,但我对任何事情都持开放态度。
我有一些已分区的表,并且在复制的从属设备上有多个索引。将快照(已验证安全)复制到新从属并将 mysqld 从 5.1.42 升级到 5.5.15 并重新启动复制后,我收到 InnoDB 崩溃并显示错误消息“无效指针...”
这些错误发生在具有不同硬件和操作系统的 2 个服务器上。运行后:
ALTER TABLE .... COALESCE PARTION n;
那张桌子的问题就消失了。
不过,我的问题范围更大,那就是“您如何识别 InnoDB 表损坏?” 或改写为“您如何评估 InnoDB 表的健康状况?” 是“检查表”可用于识别问题预碰撞唯一的工具?
不确定它是否重要,但运行时发生崩溃:版本:'5.5.15-55-log' 套接字:'/opt/mysql.sock' 端口:3306 Percona Server (GPL),版本 rel21.0,修订版 158
很多次我在软件开发工作结束时被引入并被告知“好吧,我们已经有了所有这些新代码,它需要更改表并迁移数据”。
似乎每次都是一次性的,从臀部射门,最好的猜测场景。我觉得这是我作为 DBA 最弱的技能。
我想了解一些接近、管理和测试数据迁移的模式。
请告诉我一些最佳实践和/或我可以从哪里获得学习材料以帮助我在这方面做得更好。
是的,我将在他们两个上运行 strace ......但是,我想知道......
使用 MySQL,我需要查询具有日期时间字段的表。我需要计算特定一周的所有记录。使用 date_format(colname, "%Y %V") 返回周#,但我需要该周的最后一天(01-28|29|30|31)。
输出例如
COUNT(*) | 日期
11 | 2012-01-07
22 | 2012-01-14
123 | 2012-01-21
帮助?
注意:就我而言,一周的最后一天是星期日。
可能的重复:
使用 ENUM 与 Integer 类型的优缺点?
仅考虑 MySQL...
我很想知道社区认为 ENUM 类型与 FK 到类型表的正确用例是什么。
我读过这个问题:使用 ENUM 与 Integer 类型的优点和缺点?,但是用例对我来说并没有得到很好的覆盖。
在 MySQL 的 INFORMATION_SCHEMA.TABLES 表中,有一列名为“TABLE_CATALOG”。本专栏的文档很少,我想知道这样做的目的是什么?任何杀手级应用程序的目的或我缺少的东西?
mysql> SHOW CREATE TABLE INFORMATION_SCHEMA.TABLES\G
*************************** 1. row ***************************
Table: TABLES
Create Table: CREATE TEMPORARY TABLE `TABLES` (
`TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '',
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
`TABLE_TYPE` varchar(64) NOT NULL DEFAULT '',
`ENGINE` varchar(64) DEFAULT NULL,
`VERSION` bigint(21) unsigned DEFAULT NULL,
`ROW_FORMAT` varchar(10) DEFAULT NULL,
`TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
`AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
`DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
`MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL, …Run Code Online (Sandbox Code Playgroud) 周围有一些炒作:HandlerSocket
似乎更快,nosql 访问 MySQL 数据变得越来越可取。Percona Server 现在内置了 HandlerSocket。
我的问题是,绕过 MySQL 的 libmysqld 层以利用 HandlerSocket 插件的生产用例是什么?您是否将其部署到生产环境中?
我注意到大约每一秒,mysqld 错误日志中都有一个新行,指出登录失败。用户并不总是相同的,但是当 mysqld 运行时,它总是每秒发生一次。我想关闭此行为或阻止它记录。我怀疑这与launchd / launchctl 有关系。
建议??
例如
2016-03-12T16:50:28.126292Z 1567 [Note] Access denied for user '_spotlight'@'localhost' (using password: NO)
2016-03-12T16:50:30.298595Z 1568 [Note] Access denied for user '_spotlight'@'localhost' (using password: NO)
2016-03-12T16:50:32.130295Z 1569 [Note] Access denied for user '_spotlight'@'localhost' (using password: NO)
2016-03-12T16:50:34.131190Z 1570 [Note] Access denied for user '_spotlight'@'localhost' (using password: NO)
2016-03-12T16:50:36.131302Z 1571 [Note] Access denied for user '_spotlight'@'localhost' (using password: NO)
2016-03-12T16:50:39.211193Z 1572 [Note] Access denied for user '_spotlight'@'localhost' (using password: NO)
2016-03-12T16:50:40.322560Z 1573 [Note] …Run Code Online (Sandbox Code Playgroud) 我们是一家 MySQL 前端商店,目前有一个系统以高度结构化的格式记录事件数据。想想 apache 流量日志。
我们需要能够通过 vi 临时查询聚合这些数据(立方体)的计数。我们目前正在将数据发送到 CouchDB。这是非常快的,一旦一个视图完全映射,但我们的数据库大小只有 31GB 并且 CouchDB 正在永远映射一个新视图(2+小时)。检索 JSON 格式的数据对我们来说效果很好。但是我们害怕创建新的视图文档。我认为所有 Map-Reduce 系统都可能有这个问题。
我们正在评估 Infobright,因为他们声称可以为即席查询提供卓越的聚合性能,并且是 MySQL 的分支。
我们已经评估了蒙德里安,但它对我们不起作用。
MySQL/InnoDB 太慢了。
到年底,我们将拥有大约 500GB 的日志数据。
Infobright 是正确的解决方案还是我们还应该评估其他东西?
我的任务是设计一个系统来重现事件。事件可能每天、每小时、每月或每年重复发生。用户应该能够“每个月的第三个星期三”或“每个月的第一个”或“每小时”安排事件。
假设我从一个“事件”表开始:
events
-------
id INT
name VARCHAR
notes TEXT
...
Run Code Online (Sandbox Code Playgroud)
应该使用哪些字段/实体/架构来持久化重复规则?
fwiw,我使用的是 MySQL 5.5.x。
更新(2012 年 8 月 29 日):