Mysql
二两天涯
这个作者很懒,什么都没留下…
展开
-
MySQL存储引擎
MySQL 的存储引擎可能是所有关系型数据库产品中最具有特色的了,不仅可以同时使用多种存储引擎,而且每种存储引擎和MySQL之间使用插件方式这种非常松的耦合关系。 由于各存储引擎功能特性差异较大,这篇文章主要是介绍如何来选择合适的存储引擎来应对不同的业务场景。 MyISAM 特性 不支持事务:MyISAM存储引擎不支持事务,所以对事务有要求的业务场景不能使用 表级锁定:其锁定机制是表级索原创 2013-10-03 17:11:14 · 541 阅读 · 0 评论 -
简说mysql分表分区
什么是数据库分区? 数据库分区是一种物理数据库设计技术,虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。 分区主要有两种形式://这里一定要注意行和列的概念(row是行,column是列) 水平分区(Horizontal Partitioning) 这种形式分区是对表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从转载 2015-07-20 19:47:34 · 352 阅读 · 0 评论 -
mysql 开启慢查询
1,配置开启 Linux: 在mysql配置文件my.cnf中增加 log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log) long_query_time=2 (记录超过的时间,默认为10s) log-queries-not-using-indexes转载 2014-12-04 15:23:07 · 385 阅读 · 0 评论 -
SQL 语句优化
【问题现象】 线上mysql数据库爆出一个慢查询,DBA观察发现,查询时服务器IO飙升,IO占用率达到100%, 执行时间长达7s左右。 SQL语句如下: SELECT DISTINCT g.*, cp.name AS cp_name, c.name AS category_name, t.name AS type_name FROM gm_game g LEFT JOIN gm_cp c转载 2014-08-07 16:28:42 · 402 阅读 · 0 评论 -
查看mysql数据库的默认引擎及 修改默认引擎
在修改默认引擎之前,最好了解mysql读取配置文件my.cnf的顺序,以及mysql的目录结构 --默认basedir=/usr ,datadir=/var/lib/mysql,/etc/my.cnf 配置文件读取顺序详见另一篇帖子。 1.查看mysql的存储引擎信息 mysql> show engines; +--------------------+---------+------转载 2013-07-08 10:01:57 · 1646 阅读 · 0 评论 -
MySQL行锁小结
做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统。假设id=1的这本书库存为1,但是有2个人同时来借这本书,此处的逻辑为 SELECT restnum FROM book WHERE id =1 ; --如果restnum大于0,执行update UPDATE book SET restnum=restnum-1 WHER转载 2013-10-03 17:10:13 · 514 阅读 · 0 评论 -
MySQL调优
◆综述 可以从以下角度去优化mysql服务器的运行速度。 (1)升级硬件设备。 (2)对MySQL的设置进行调优。 (3)对查询进行优化。 FLUSH STATUS ◆记录慢查询 set global slow_query_log=on; show variables Like '%slow%'; mysqldumpslow -s c -t 20 host-slow.log s转载 2013-10-03 17:12:08 · 603 阅读 · 0 评论 -
mysql分表与分区
1、首先得确认mysql是否支持分区功能,这可以通过命令:show plugins 查看如果显示如下, 则说明你的mysql版本支持partition 2、InnoDB一般用于具有事务和外键的场合,它默认将所有的表数据和索引文件放在一个名为ibdata1的文件中,属于共享表空间。MyISAM默认每个表都会有一个.frm表描述文件和一个.ibd文件,属于独占表空间。分区必须是独转载 2013-07-08 11:34:56 · 789 阅读 · 0 评论 -
Mysql分区学习
对于 select count(*) from 表名字; select count(主键索引) from 表名字; select count(1或者一个数字) from 表名字; 这样的语句,mysql已经做了优化,所以查询语句速度很快 对于这样的select count(*) from 表名字 where XXX;的语句,mysql 未做优化,要慎用,如果要用的话,一定原创 2013-07-08 15:04:15 · 561 阅读 · 0 评论 -
本地数据库通过MySQl-Font导入到某一连接地址的数据库中
打开MySQl-Font,在数据库连接下创建一个和本地数据库名相同的数据库,注意Character Set和Collaction一定要和本地数据库的保持一致,否则会出现乱码。选择菜单栏的Extras->Transfer,在Source内选择本地的数据库,在Destination内选择要导入到的数据库 ->OK原创 2013-07-21 10:02:19 · 959 阅读 · 0 评论 -
Mysql导出表结构及表数据 mysqldump用法
命令行下输入:mysqldump -u用戶名 -h地址 -p密码 -d 数据库名 表名 脚本名; 1、导出数据库为dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名为db.sql) mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2、导出数据库为dbname某张表(test)结构原创 2015-11-18 10:49:43 · 544 阅读 · 0 评论