Articles of innodb

MySQL MyISAM多核优化

我注意到,当请求执行时,我们的应用程序不会响应请求。 跑top似乎确定了问题的根源: top – 13:54:25 up 1 day, 13:43, 2 users, load average: 1.02, 0.98, 0.83 Tasks: 110 total, 1 running, 109 sleeping, 0 stopped, 0 zombie Cpu(s): 11.9%us, 1.1%sy, 0.0%ni, 86.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st Mem: 3145728k total, 2329220k used, 816508k free, 0k buffers Swap: 131072k total, 128164k used, 2908k free, 1585060k cached PID […]

MySQL SELECT查询挂起

在我的服务器上,我有6个MySQL数据库。 他们都支持WordPress的网站。 由于某些原因,其中2个数据库无法访问。 据我所知,他们使用INNODB,但我不能确认它甚至做一个: mysql> use INFORMATION_SCHEMA; mysql> SELECT * FROM TABLES; 挂在我身上。 工作数据库看起来很好(至less网站在线)。 当我试图访问不良的数据库网站时,它将继续旋转。 如果我做一个: mysql> use rbb; mysql> SELECT * FROM wp_posts; 它只会挂起。 我的服务器正在运行CentOS 6.2,到目前为止我没有任何问题。 任何指针将不胜感激。 我不知道下一步该怎么做。 即使向服务器打开Sequel Pro也会挂起应用程序。 如果我尝试查询,然后检查另一个连接中的进程列表,则显示: +—-+——+———–+—–+———+——+—————-+————————+ | Id | User | Host | db | Command | Time | State | Info | +—-+——+———–+—–+———+——+—————-+————————+ | 10 | root […]

MySQL的InnoDB buffer_pool_size不增加?

日志文件中没有错误,但是这似乎并没有加在我身上。 也许我误解了一些东西: mysql> show variables like '%buffer_pool%'; +————————-+———–+ | Variable_name | Value | +————————-+———–+ | innodb_buffer_pool_size | 268435456 | +————————-+———–+ 1 row in set (0.00 sec) mysql> show innodb status\G […] ———————- BUFFER POOL AND MEMORY ———————- Total memory allocated 307469458; in additional pool allocated 1046016 Dictionary memory allocated 1258016 Buffer pool size 16384 Free […]

使用临时表上的键重新发生问题

我们运行一个大量的读写的论坛,特别是posts和topics表都是innodb。 上个星期我开始用innobackupex进行12小时的备份,因为mysqldump只需要花费很长时间( posts表中有700多万行)。似乎有些东西不喜欢这些备份,因为我每隔一天就有一个反复出现的问题。 症状; 该网站的首页开始抛出错误 日志开始显示错误,如Error: 126 – Incorrect key file for table '/tmp/mysql/#sql_4e87_14.MYI'; try to repair it Error: 126 – Incorrect key file for table '/tmp/mysql/#sql_4e87_14.MYI'; try to repair it / tmp / dir填满,我们开始得到Error: 1030 – Got error 28 from storage engine日志中的Error: 1030 – Got error 28 from storage engine中Error: 1030 – Got error […]

在数据库更改期间,InnoDB“表xx已满”

我在CentOS 6.3 64位上运行Percona Mysql Server 5.6.14-56。 服务器有很多ram(96GB)和存储空间。 文件系统types:ext4 dev/sda6 ext4 1093623528 56576512 981494148 6% /mysqlstorage 我试图对42Mlogging(大约12.5GB(大约是索引的50%))的表进行一些改动,今天它向我展示了Table Is Full错误。 我检查了加载的variables,并innodb_data_file_path = ibdata1:12M:autoextend它显示在我的MySQLpipe理器。 这个数据库是活的,我宁愿修复这个问题没有(或最小)的停机时间。 文件每桌是活动ibdata1约3.9GB 从MYSQL LOGS: 2015-02-19 01:43:04 7fe921f4b700 InnoDB: Error: Write to file (merge) failed at offset 356515840. InnoDB: 1048576 bytes should have been written, only 1036288 were written. InnoDB: Operating system error number 28. […]

MySQL以不知名的间隔持续崩溃

Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution 160130 08:29:38 mysqld_safe Number of processes running now: 0 160130 08:29:38 mysqld_safe mysqld restarted 160130 8:29:39 InnoDB: Initializing buffer pool, size = 8.0M 160130 8:29:39 InnoDB: Completed initialization of buffer pool InnoDB: Error: pthread_create returned 11 160130 08:29:39 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 160130 18:21:35 […]

如何避免更新Mysql表中的所有行?

有没有办法可以拒绝或避免对Mysql表的所有行进行更新? 背景: 我有一个'OrderID'(Type VARCHAR)和'VendorID'(Type Integer)作为两列的表。 如果我在这个表上运行下面的查询,它只是重置所有行中的VendorID: SET `VendorID` = 0 WHERE `OrderID` = 0 OrderID不应该是0,而是因为系统中的一些错误,它逃脱了所有的检查并造成了严重破坏。 如果OrderID是Integertypes的,这个查询就不会做任何事情。 但是由于OrderID具有字母,因此不能设置为整数types。 Mysql能否以拒绝所有行的更新的方式进行configuration? 如果底层数据库不是Mysql,这个查询的结果会改变吗? 我的环境: nginx / 1.4.6 Codeigniter(2.x)/ Mysql(5.5)/ InnoDB表types 请build议今后如何避免这个问题,谢谢。

InnoDB恢复

由于(页面文件写入错误),我的MySQL服务器运行崩溃。 我做了一个磁盘诊断,但没有发现错误。 我重新启动了MySQL服务器。 它像1-2小时扫描bin日志并logging日志如下: InnoDB: Doing recovery: scanned up to log sequence number 51 2341175808 InnoDB: Doing recovery: scanned up to log sequence number 51 2346418688 InnoDB: Doing recovery: scanned up to log sequence number 51 2351661568 InnoDB: Doing recovery: scanned up to log sequence number 51 2356904448 InnoDB: Doing recovery: scanned up to log […]

Mysql 5.5碎片整理不会减less碎片百分比

我们正在运行OPTIMIZE TABLE,但没有看到任何碎片减less。 他们高达120%至200%。 我正在使用这个计算碎片百分比:Data_Free /(Data_Length + Index_Length) 我的表正在使用INNODB引擎和“innodb_file_per_table”设置为1。 我错过了什么? 有什么改变与MySQL 5.5以上? TIA

MySQL,检查并启用二进制日志

我在CentOS上运行MySQL 5.1.47。 如何检查InnoDB的二进制日志logging是否处于活动状态? 如何启用二进制日志logging,如果他们没有启用? 赶紧跑? mysqld –log-bin