Btree:1. 尽量使用覆盖索引, 即三星索引2. 多列索引如果带范围的话, 后续列不会作为筛选条件3. 多列索引应选择过滤性更好的充当前缀索引4. 尽量按主键顺序插入, 减少页分裂, 采用自增ID在高并发情况下, 可能造成明显征用, 或者更改innodb_autoinc_lock_mode配置....
分类:
数据库 时间:
2014-07-07 09:59:48
阅读次数:
212
1. InnoDB 支持事物,Myisam 不支持事物2. InnoDB 是行级锁,Myisam 表级锁3. InnoDB 不支持全文索引,Myisam 支持全文索引,但不支持外键4. InnoDB 在磁盘上是两个文件,Myisam 是三个文件5 myISAM管理非事务表。它提供高速存储和检索,以及...
分类:
数据库 时间:
2014-07-06 21:05:40
阅读次数:
229
运维的时候,经常遇到auto_increment的疑惑:机器异常crash,重启后id回退的问题性能考虑,每次获取肯定不会持久化,内存中取值,statement复制如何保证主备一致id的取值受binlog的保护吗1. auto_increment相关的参数控制 1.1 innodb_autoinc_...
分类:
数据库 时间:
2014-07-06 16:32:46
阅读次数:
315
事务是关系型数据库的核心,贯穿整个源代码,先来瞅瞅相关的数据结构,揭开面纱:server层和innodb引擎层分别对应了不同的数据结构,但相互关联:server层需要引擎注册事务,以便server层能够引用。innodb层需要维持事务的状态,以及事务的状态转换的具体实现。1. 相关数据结构下面用一个...
分类:
数据库 时间:
2014-07-03 13:22:20
阅读次数:
272
测试了两个case,属于之前blog的遗留问题: innodb如何加载数据字典 flush tables都做了什么操作先来看下innodb加载数据字典: 首次使用:select * from tt;1. 创建handler对象函数调用栈: open_binary_frm ...
分类:
数据库 时间:
2014-07-03 06:21:07
阅读次数:
318
ERROR 1665 (HY000): Cannot executestatement: impossible to write to binary log since BINLOG_FORMAT = STATEMENTand at least one table uses a storage engine limited to row-based logging.InnoDB is limited to row-logging when transaction isolation level is REA...
分类:
数据库 时间:
2014-07-02 07:46:46
阅读次数:
322
测试参数:sysbench--test=/root/sysbench0.5/sysbench/tests/db/insert.lua
--mysql-table-engine=innodb--oltp-table-size=1000000
--max-requests=0--max-time=300--num-threads=16
--oltp-tables-count=10--report-interval=10
--mysql-host=10.8.8.100--mysql-port=3312--..
分类:
数据库 时间:
2014-07-02 06:44:36
阅读次数:
280
今天试图用heidisql 导入一个150M的数据文件(.sql), 结果报out of memory 错误。在网上搜了很多案例,都没能解决问题。我甚至怀疑是mysql 的default的内存设置的太小了。于是跑到my.ini文件里修改了innodb_buffer_pool_size 为96M * ...
分类:
数据库 时间:
2014-07-01 16:59:24
阅读次数:
395
--MySQL锁与MVCC--------------------2014/06/29myisam表锁比较简单,这里主要讨论一下innodb的锁相关问题。innodb相比oracle锁机制简单许多,锁的类型有如下几类:Ashared (S) lockpermits the transaction t...
分类:
数据库 时间:
2014-07-01 00:13:56
阅读次数:
354
作为一个oracle dba有时候不得不管理一下mysql数据库,当为主从库时需要阶段性清理mysql binary log,清楚方式如下:
首先查看mysql 的当前日志组
show master status;
确定当前日志组后删除日志文件
purge binary logs to 'mysql-bin.000795';
删除000795之前的日志...
分类:
数据库 时间:
2014-06-30 17:16:01
阅读次数:
240