存储引擎优化
一、myisam存储引擎优化
1.索引缓存优化
1.1myisam存储引起实现机制及索引文件的存放格式
.myi文件中
头(四部分信息)紧跟索引数据信息
索引数据以Block(page)为最小单位
Index Block ---->逻辑上组织形式
物理上是以File Block存储磁盘
Key Cache中缓存的索引信息是以Cache Block形式组织存放的。
query读数据的过程 看图
1.2 MyISAM存储引擎索引缓存相关的参数
a.key_buffer_size----->索引缓存大小 (KeyCache大小)
三个指标 系统索引的总大小、可用物理内存、系统当前的key cache命令率
可以参考官方手册提供的一个粗略计算的公式:
Key_Size = key_number * (key_length+4)/0.67
Max_keyBuffer_size < Max_RAM-QCache_Usage-Threads_Usage-System_Usage
Thread_Usage = max_connections*(sort_buffer_size+join_buffer_size+read_buffer_size+read_rnd_buffer_size+thread_Stack)
查看Key Cache相关的状态变量:
show status like 'key%';
| Key_blocks_not_flushed | 0 |
| Key_blocks_unused | 45920 |
| Key_blocks_used | 0 |
| Key_read_requests | 0 |
| Key_reads | 0 |
| Key_write_requests | 0 |
| Key_writes | 0 |
+------------------------+-------+
将来可以通过这些参数计算命中率等信息
Key_buffer_Read_HitRatio = (1-Key_reads/key_read_requests)*100%
Key_buffer_Writer_HitRatio = (1-key_writes/key_writer_requests)*100%;
Key_buffer_UsageRatio = (1-key_blocks_used/(key_blocks_used+key_block_unused))*100%
b.key_buffer_block_size 索引缓存中的cache_block_size
key_cache_divsion_limit
---->Hot Area / Warm Area
---->划分该范围比例的,默认是100,只有Warm Area 可以1到100
1.3 NULL值对信息统计的影响。
myisam_stats_method = nulls_equal 认为每个null值都一样。
nulls_unequal
1.4 表读取缓存优化
read_buffer_size Sequential Scan方式扫描数据时使用的buffer
read_rnd_buffer_size Random Scan方式时使用的buffer
淘宝站当中 读数据的库核心主要是用mysql的myisam存储引擎
二、Innodb存储引擎优化
1.innodb_buffer_pool_size参数的设置
该参数对innodb存储引擎的性能有决定的影响。
很多介绍都直接说设置在物理内存的50%到80%
应该更严谨一些
总内存-独占内存-适当冗余
假设单独MySql使用的主机,物理总内存8GB同时使用了MyISam存储引擎
内存如何分配
a)系统冗余:800M
b)myisam :1.5G
c)线程独占部分500个连接*(1mb+1mb+1mb+512kb+512kb)--->2G
sort_buffer_size 1m
join_buffer_size 1m
read_buffer_size 1m
read_rnd_buffer_size 512kb
thread_stack 512kb
innodb_buffer_pool_size = 8G-1.5G-2G-800M=3.7G
show status like 'innodb_buffer_pool%';查看跟innodb_buffer_pool_size相关的参数
2.innodb_log_buffer_size
3.事务优化
事务隔离级别等基础知识 了解
innodb_flush_log_at_trx_commit
有三个值0 , 1,2
4.数据存储优化
主键字段存储空间越小越好
表的创建尽量自己指定相应的主键
主键不要更新
进可能提供主键查询
相关推荐
- **数据恢复策略**:学习如何在数据丢失或错误时,通过备份文件进行恢复操作。 5. **性能监控与调优** - **性能日志与慢查询日志**:开启并分析MySQL的性能日志和慢查询日志,找出影响性能的SQL语句。 - **...
- MySQL Cluster:分布式多节点集群,提供高可用性和数据冗余。 9. **分区与分片**: - 表分区:提高大数据量查询性能,如按时间、范围或哈希值分区。 - 数据库分片:将数据分散到多个物理服务器,实现水平扩展...
7. 数据库备份与恢复:学习备份策略,包括全备、增量备份数及如何在灾难发生时进行数据恢复。 8. 高级SQL语法:深入学习窗口函数、子查询、联接操作等复杂SQL语句的使用。 【尚硅谷springcloud】: SpringCloud是...
5. **备份与恢复**:详细讲解如何进行MySQL的全量备份、增量备份和差异备份,以及如何恢复数据。 6. **性能优化**:涵盖查询优化、索引优化、配置参数调整等方面,提升数据库性能。 【MySQL-运维篇.pdf】则关注...
9. **备份与恢复**:为了防止数据丢失,数据库系统支持定期备份和在出现问题时进行数据恢复。 10. **性能优化**:包括索引创建、查询优化、分区策略等方法,以提升数据库的读写速度和响应时间。 11. **NoSQL数据库...
6. 数据库恢复与备份:学习如何在系统故障或灾难情况下恢复数据库,包括日志记录、检查点、备份策略等。 7. 分布式数据库与云数据库:随着云计算的发展,分布式数据库和云数据库成为热门话题,书中会介绍这些新兴...
面试中可能涉及SQL查询优化、事务处理、存储引擎(InnoDB和MyISAM)、索引类型、视图、触发器和备份恢复策略等。 4. **PostgreSQL**: PostgreSQL是另一个强大的开源数据库系统,支持复杂查询和ACID事务。面试中可能...
在数据库层面,MongoDB的访问通过Wrapper进行管理,Wrapper包含了重试策略、数据备份和恢复机制,确保了数据的安全和一致性。通过这样的优化,Uber构建了一个强大且灵活的架构,能够处理大规模的用户请求,同时保证...
根据不同的特性和用途,数据库可以分为关系型数据库(如MySQL、Oracle)、非关系型数据库(如MongoDB、Redis)以及分布式数据库等。 二、数据库管理系统(DBMS) 数据库管理系统是用于创建、操作和管理数据库的软件...
6. **故障恢复和监控**:如何备份和恢复数据,以及通过日志和指标监控Memcached的运行状态。 7. **与其他技术的集成**:例如与Web框架、数据库、负载均衡器等的集成策略。 通过深入学习和实践,我们可以掌握如何在...
3. **备份与恢复**:了解不同类型的备份策略,如完整备份、增量备份和差异备份,以及如何进行数据恢复。 4. **安全性**:如何防止SQL注入攻击,理解加密和审计机制,确保数据安全。 期末考试可能会涵盖理论知识的...
2. 数据备份与恢复:定期备份数据库以防止数据丢失,设计恢复策略以应对系统故障或数据错误。 六、分布式数据库与云计算环境下的数据库 1. 分布式数据库:数据分布在多个物理位置,通过网络连接,提供全局一致性...
3. 数据库管理:熟悉MySQL、Oracle、MongoDB等数据库的管理,包括备份、恢复、性能调优。 五、分布式系统 1. 分布式一致性:了解CAP原理,理解Paxos、Raft等分布式一致性算法。 2. 分布式计算:MapReduce模型及其...
4. **数据库管理**:包括数据库的安装、配置、备份与恢复策略,性能监控与调优,以及安全性设置,如用户权限管理、角色权限分配等。 5. **数据库系统架构**:理解不同的数据库管理系统,如关系型数据库(如Oracle、...
这包括理解不同的备份类型(如完整备份、增量备份和差异备份)以及如何在系统故障后恢复数据。 6. **大数据处理**: 随着数据量的爆炸性增长,大数据技术变得越来越重要。Hadoop、Spark等框架可以帮助处理大规模...
同时,系统需要具备容错机制,如数据备份和恢复,以应对可能出现的硬件故障。此外,性能优化也是必不可少的,如通过缓存技术减少数据库访问,通过负载均衡提高服务器处理能力。 在实际开发过程中,可能会用到的技术...
在容错机制方面,课程会讲解故障恢复、冗余备份、分布式一致性算法(如Paxos、Raft)以及幂等性设计,确保系统在面对故障时仍能保持稳定运行。此外,性能优化是系统设计中的重要环节,包括网络优化、资源调度和并行...