mysql
郭嵩阳
这个作者很懒,什么都没留下…
展开
-
mysql Innodb与MyIsam的主要区别 不断完善中
Innodb与MyISAM的主要区别: 1、缓存机制 2、事物支持 3、锁的实现 4、数据存储方式的差异 缓存机制区别:Innodb不带可以缓存索引,还会缓存数据相关信息 可通过Innodb_buffer_pool_size设置 官方建议为物理内存的50%~80% show status like 'Innodb_buffer_pool_%'; 查看Innodb的B原创 2012-11-28 12:23:38 · 389 阅读 · 0 评论 -
索引的好处与弊端
索引的优点: 1、索引能够提高数据检索的效率,降低数据库的IO成本。 2、索引还有一个非常重要的用途,就是降低数据的排序成本。 每个索引中的索引数据都是按照索引键值进行排序后存放的,所以,当我们的query语句中包含排序分组操作的时候,如果我们的排序字段和索引字段刚好一致,MySQL Query Optimizer就会告诉mysqld在取得数据后不用排序了。 分组原创 2013-06-14 14:26:02 · 12846 阅读 · 0 评论 -
如果判断是否需要创建索引
1、较频繁的作为查询条件的字段应该创建索引. 2、唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件: 唯一性太差的字段:如状态字段,类型字段等。这些字段即使创建了单独的索引,MySQL Query Optimizer大多数也不会选择使用,如果什么时候 选择了这种索引,可能会带来极大的性能问题。由于索引字段中每个值都含有大量的记录,那么存储引擎在根据索引访问数据的时候会带来大原创 2013-06-14 16:40:42 · 2547 阅读 · 0 评论 -
mysql索引的限制
1、myisam存储引擎长度总和不能超过1000字节 2、BLOB和TEXT类型的列只能创建前缀索引 3、MYSQL目前不支持函数索引 4、使用不等于的时间mysql无法使用索引 5、过滤字段使用了函数运算后,mysql无法使用索引 6、join语句中join条件字段类型不一致的时候无法使用索引 7、使用like操作的时候以通配符开始无法使用索引 8、使用非等值查询的时候无法使用Ha原创 2013-06-14 16:48:52 · 871 阅读 · 0 评论 -
安装mysql
1、rpm -qa|grep mysql mysql-libs-5.1.47-4.el6.x86_64 2、yum -y remove mysql-libs-5.1.47-4.el6.x86_64 3、rpm -ivh mysql-server.rpm 4、客户端 rpm -ivh MySQL-client-5.6.11-2.el6.x86_64.rpm 5、my原创 2013-06-05 17:27:04 · 503 阅读 · 0 评论 -
mysql执行查询的过程
1、客户端将查询发送给mysql服务器 2、服务器检查查询缓存。如果找到了,就从缓存中饭后结果,否则进行下一步。 3、服务器解析,预处理和优化查询,生成执行计划 4、执行引擎调用存储引擎API执行查询 5、服务器将结果返回客户端。原创 2013-04-21 11:43:58 · 576 阅读 · 0 评论 -
分解连接
1、分解连接 分解连接的好处, 1、可以提高缓存的效率。 2、对于MyIsam表来说,每个表的一个查询可以更有效利用表锁。因为查询会锁住单个表较短的时间。 3、在应用程序端进行连接,可以把不同的表放在不同的库中。 4 、可以减少多余行的访问。在应用程序进行连接意味着对每行数据只会访问一次,而连接从本质上说是非正则化的,它会反复地访问同一行数据。基于同样的原因,原创 2013-04-21 11:38:45 · 658 阅读 · 0 评论 -
mysql存储引擎
myisam存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。 分别是:存放表结构信息的.frm文件,表数据文件.MYD和索引数据.MYI. 支持三种索引类型: 1、B-Tree,所有的索引节点都按照balance tree的数据结构来存储,所有的索引数据节点都在叶节点。 2、R-Tree, 主要设计用于存储空间和多维数据的字段做索引,所以目前的mysql版本来说,也仅支原创 2013-04-17 14:06:20 · 439 阅读 · 0 评论 -
mysql query优化原则
1、优化更需要优化的query 2、定位优化对象的性能瓶颈 3、明确优化目标 4、从Explain入手 5、多使用profile 6、永远小结果集驱动大结果集 7、尽可能在索引中完成排序 8、只取出租金需要的Columns 9、仅仅使用最有效的过滤条件 10、尽可能避免复杂的Join和子查询 永远小结果集驱动大结果集 在mysql中的join,只有Nested Loo原创 2012-11-22 16:31:18 · 437 阅读 · 0 评论 -
join的实现原理与优化思路
join实现原理 mysql只有一种join算法,就是大名鼎鼎的Nested Loop Join Nested Loop Join实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件下一个表中查询数据,然后合并结果。如果还有第三个参与Join,则在通过之前连个表的join结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复。原创 2013-04-16 16:02:39 · 856 阅读 · 0 评论 -
innodb 锁的查看
show status like "innodb_row_lock"; Innodb_row_lock_current_waits 0 当前正在等待坐定的数量 Innodb_row_lock_time 490578 从系统启动到现在坐定总时间的长度(重要) Innodb_row_lock_time_a原创 2012-11-21 16:30:40 · 520 阅读 · 0 评论 -
mysql 锁的分析
行级锁 颗粒度小,提高并发整体性能,但是每次获取锁和释放锁做的事情也很多,容易发生死锁 表级锁 获取锁和释放锁速度很快,避免死锁,但是锁的争抢率高,并发性能有折扣。 页级锁原创 2012-11-21 15:53:26 · 373 阅读 · 0 评论 -
mysql存储引擎
MYISAM 存储数据分为三个文件:.frm 表结构信息 .MYD 表数据 .MYI 索引信息 主机crash,或者写操作被kill 可能会照成 表数据损坏 可以使用check table校验表和repair table修复表 使用myisamchk工具进行检测或者修复 INNODB 存储文件有两个文件:.frm .ibd(存放表和索引数据) 支持事物,出现crash可以原创 2012-11-20 16:43:10 · 274 阅读 · 0 评论 -
Explain分析sql语句的性能
EXPLAIN语法(获取SELECT相关信息) EXPLAIN tbl_name 或: EXPLAIN [EXTENDED] SELECT select_options EXPLAIN 语句可以用作DESCRIBE 的一个同义词,或获得关于MySQL 如何执行SELECT 语句的信息: · EXPLAIN tbl_name 是DESCRIBE tbl_name原创 2012-11-29 15:51:01 · 3410 阅读 · 0 评论 -
Linux下mysql基础命令
有关mysql数据库方面的操作 显示数据库列表 show databases; 显示数据库中表 show tables; 显示表结构 describe 表名; 建库 create database 库名; 建表 use 库名; create table 表名(字段设定列表); 删库和删表: drop database 库名; drop table 表名; 将表中记原创 2012-11-29 15:52:25 · 343 阅读 · 0 评论 -
mysqldump导出数据命令
mysqldump导出数据命令 导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql) mysqldump -uroot -pdbpasswd -d dbname >db.sql; 导出數據库為dbname某张表(test)结构 mysqldump -uroot -pdbpasswd -d dbname test>原创 2012-11-29 15:49:02 · 400 阅读 · 0 评论 -
mysql数据类型
更小通常更好 一般来说,要试着使用能正确地存储和表示数据的最小类型。更小的数据类型通常更快,占用磁盘空间、内存、CPU缓存,需要的CPU周期更少。 但是要确保不会低估需要保存的值,在架构中的多个地方增加数据类型的范围是一件极其费时费立的工作,如果不能去顶需要的类型,就选择你认为不会超出范围的最小类型。 (如果系统不是非常繁忙或不会保存太多的数据,在或者还处于设计的早期,就可以原创 2013-04-14 15:08:08 · 763 阅读 · 0 评论