1. 缘起
我们所有Mysql的db引擎是MyISAM,在高并发的情况下,表级锁存在很严重的问题。
如下:
2. MySQL表锁情况学习
- mysql> show global status like 'table_locks%';
- +-----------------------+-----------+
- | Variable_name | Value |
- +-----------------------+-----------+
- | Table_locks_immediate | 490206328 |
- | Table_locks_waited | 2084912 |
- +-----------------------+-----------+
Table_locks_immediate表示立即释放MySQL表锁数,Table_locks_waited表示需要等待的MySQL表锁数,如果Table_locks_immediate / Table_locks_waited > 5000,最好采用InnoDB引擎,因为InnoDB是行锁而MyISAM是MySQL表锁,对于高并发写入的应用InnoDB效果会好些。示例中的服务器Table_locks_immediate / Table_locks_waited = 235,MyISAM就足够了。
因此,在数据库选择引擎时需要考虑DB的USE CASE。如果读写操作频繁推荐InnoDB引擎,如果只有读操作或写操作不频繁可以选择MyISAM,就查询而言MyISAM比InnoDB快。
3. 参考地址:http://database.51cto.com/art/201010/229971.htm
- 大小: 2 KB
分享到:
相关推荐
本文总结了一些常用的 MySQL 性能查询语句,帮助数据库管理员和开发人员更好地了解和优化数据库性能。 1. 查看 MySQL 本次启动后的运行时间(单位:秒) 使用语句:show status like 'uptime'; 该语句可以查看 ...
- 打开`my.ini`配置文件,找到`max_connections`参数,将其设置为一个合适的值。默认情况下,该值通常设置为100。然而,根据服务器的硬件配置,可以适当增加这个值。例如,在Windows服务器上,推荐的最大连接数为...
- **打开文件数量**: 增加系统和MySQL服务器的最大打开文件数量, 例如在Linux下使用`ulimit -n #`命令。 - **进程和线程数量**: 增加系统可以处理的进程和线程数量。 - **文件系统优化**: 在Solaris系统中, 可以告诉...
- 初始化、查询缓存检查、打开表、获取系统锁、表锁、初始化、优化等阶段的耗时。 - 关注查询数据、结束、存储结果、释放资源、关闭表、记录慢查询等操作的时间开销。 #### 总结与建议 - **持续监控**:定期监控...
- **MySQL字符集的设置**:可以通过配置文件或动态设置的方式更改MySQL服务器的字符集。 ##### 第5章 索引的设计和使用 - **MySQL索引概述**:索引用于加快数据检索速度,是数据库性能优化的重要手段。 - **设计...
7. **操作系统限制**:操作系统的资源限制,如打开文件数限制,可能会导致MySQL在处理大量并发连接时崩溃。 8. **配置错误**:不合适的MySQL配置参数,如max_connections,可能引发服务器过载。定期检查并优化配置...
例如,在某些场景下,人们可能会考虑使用MySQL的表锁来协调多个PHP进程之间的文件访问,因为数据库锁提供了更为强大和可靠的控制机制。 此外,在设计高并发系统时,除了文件锁外,还可以采用消息队列、读写分离、...
- 参数调整:例如,`max_connections`应设置为最大连接数的80%左右,`sort_buffer_size`可增大至16M,`open_files_limit`应足够高,以避免文件打开限制问题。对于MyISAM和InnoDB,分别调整各自的参数如`key_buffer_...
3. **资源占用**:首次打开分区表时,MySQL需要访问所有分区,可能导致较高的内存和CPU消耗。同时,所有分区共享同一个元数据锁(MDL),可能影响并发性能。 4. **适用场景**:分区表适合大数据量且有规律可循的...
MySQL数据库的优化是一个重要的主题,特别是对于存储引擎的选择和配置,因为这直接影响到数据库的性能。在MySQL中,MyISAM和InnoDB是最常见的两种存储引擎,各自具有独特的特性和优化策略。 MyISAM引擎以其快速的...
n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数,其中,M表示精度,代表数字的总位数;N表示小数点右边数字的位数 日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月...