随笔分类 -  服务器相关

摘要:网上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与负责,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的,最好能使用status信息对mysql进行具体的优化,网上找了一篇文章,分页分得乱七八糟的,只能转到博客。mysql> show global status; 可以列出mysql服务器运行各种状态值,另外,查询mysql服务器配置信息语句:mysql> show variables;一、慢查询mysql> show varia 阅读全文
posted @ 2012-06-22 16:51 云隐 阅读(209) 评论(0) 推荐(0)
摘要:Mysql负荷较高,排查原因的方式有哪些? processlist/slowlog都没发现啥过慢的SQL语句,但负荷就是一波一波飚上去。简单说1:内存是否占用较多swap分区2:i/o压力大不大,最好把top显示的信息贴出来3:神马引擎,myisam还是innodb4:如果是i/o压力,反解binlog分析写入频繁度5:如果不是i/o压力,采样查询请求分析查询频繁度show status;查看具体的状态值,对症下药。用nmon监控一下,看看磁盘IO,用loadrunner强压一段时间。没有1秒以上的慢查询,不代表索引就没问题。解决好索引问题,负荷应该会降低很多。iostat -dx 1 观察磁 阅读全文
posted @ 2012-06-22 16:47 云隐 阅读(363) 评论(0) 推荐(0)
摘要:DDL—数据定义语言(Create,Alter,Drop,DECLARE)DML—数据操纵语言(Select,Delete,Update,Insert)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句:1、说明:创建数据库Create DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 阅读全文
posted @ 2012-06-22 15:46 云隐 阅读(184) 评论(0) 推荐(0)
摘要:在《Ruby on Rails,使用关系数据库简介》中我们简要浏览了一下关系数据库的最基本概念,这里我们动手创建一个Rails项目可以使用的数据库。Rails可以与DB2、MySQL、Oracle、Postgres、Firebird以及 SQL Server数据库一起工作。新版Rails已经使用SQLite3作为缺省数据库类型了,但是为了管理方便和通用性的考虑,我依旧使用MySQL来作为数据库。在开始之前请先确保MySQL数据库安装完毕并且将环境变量设置好。检查MySQL安装正确性。[plain]C:\Windows\system32>mysql--versionmysqlVer14.1 阅读全文
posted @ 2012-06-20 06:36 云隐 阅读(383) 评论(0) 推荐(0)
摘要:1.主键一定是唯一性索引,唯一性索引并不一定就是主键 所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。数据库在设计时,主键起到了很重要的作用。 主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。2. 一个表中可以有多个唯一性索引,但只能有一个主键3. 主键列不允许空值,而唯一性索引列允许空值4.索引可以提高查询的速度.其实主键和索引都是 阅读全文
posted @ 2012-06-20 05:57 云隐 阅读(3703) 评论(0) 推荐(1)
摘要:RANGE 分区:基于属于一个给定连续区间的列值进行分配。。CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01', separated DATE NOT NULL DEFAULT '9999-12-31', job_code INT NOT NULL, store_id INT NOT NULL)PARTITION BY RANGE (store_id) ( PARTITION 阅读全文
posted @ 2012-06-18 21:14 云隐 阅读(816) 评论(0) 推荐(0)
摘要:1. 使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWORD函数。2. 使用mysqladmin, mysqladmin -u root -p password mypasswd3. mysql> REPLACE INTO mysql.user (Host,User,Password) VALUES('%','username',PASSWORD('password'));mysql> FLUSH PRIVILEGES4. mysql> SET PASSWORD FORuserna 阅读全文
posted @ 2012-06-18 21:12 云隐 阅读(198) 评论(0) 推荐(0)
摘要:cat *.cpp *.h | wc -lwc命令 wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。 语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。 该命令各选项含义如下: - c 统计字节数。 - l 统计行数。 - w 统计字数。 这些选项可以组合使用。 输出列的顺序和数目不受选项的顺序和数目的影响。 总是按下述顺序显示并且每项最多一列。 行数、字数、字节数、文件名 如果命令行中没有文件名,则输... 阅读全文
posted @ 2012-06-18 10:26 云隐 阅读(10361) 评论(0) 推荐(0)
摘要:一、各种索引介绍:1、普通索引 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。 2、唯一索引 普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。 如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为... 阅读全文
posted @ 2012-06-11 05:48 云隐 阅读(3616) 评论(0) 推荐(0)
摘要:关键字、运算符、分隔符关键字、运算符、分隔符一起构成了一门编程语言的基本定义Ruby中的常用分隔符如下:符号名称用途;分号用来分隔一行中的多个语句()圆括号提高优先级;定义方法时容纳参数列表" "空格/分隔字符在可省略"()"的地方代替"()",逗号隔开多个参数.点将对象与它的方法隔开::双冒号域作用符,将模块(类)与它的常量隔开Ruby中的关键字如下:模块定义:module类定义: class方法定义:def,undef检查类型:defined?条件语句:if,then,else,elsif,case,when,unless循环语句 阅读全文
posted @ 2012-06-07 22:08 云隐 阅读(790) 评论(0) 推荐(0)
摘要:Validation 資料驗證ActiveRecord 的 Validation 驗證功能,透過 Rails 提供的方法,你可以設定資料的規則來檢查資料的正確性。如果驗證失敗,就無法存進資料庫。和 Database integrity 不同,這裡是在應用層設計驗證功能,好處是撰寫程式非常容易,Rails 已經整合進 HTML 表單的使用者介面。但是如果你的資料庫不只有 Rails 讀取,那你除了靠 ActiveRecord 之外,也必須要 DB 層實作 integrity 才能確保資料的正確性。確保必填validates_presence_of 是最常用的規則,用來檢查資料為非 nil 或空字 阅读全文
posted @ 2012-05-30 05:51 云隐 阅读(245) 评论(0) 推荐(0)
摘要:常量:ruby要求常量首字母要大写,但是为了可读性,建议全部大写 。而且, 说是常量, 却是可变的, 但是会有警告。Range比如,1..3 ,1...3,两个点包括末个数值3 ,三个点不包括3to_s(轉成字串)、to_i(轉成整數)或to_f(轉成浮點數)方法名稱可以用?或!結尾,前者表示會回傳Boolean值,後者暗示會有某種副作用(side-effect)。資料封裝所有的物件變數(@開頭)、類別變數(@@開頭),都是封裝在類別內部的,類別外無法存取:class Person def initialize(name) @name = name endendp =... 阅读全文
posted @ 2012-05-29 22:40 云隐 阅读(267) 评论(0) 推荐(0)
摘要:一。给Hash添加默认值 :h = {1,2,3,4} #=> {1 => 2, 3 => 4}h.default= 7h[1]#=>2h[3]#=>4h[4]#=>7h[5]#=>7二。给Hash添加key-value对:h = {} #=> {}h.store("a",1) #=> 1h["a"] #=> 1h.fetch("a")#=> 1h["b"] = 2 #=> 2h["b"] #=> 2ph#=> 阅读全文
posted @ 2012-05-27 21:28 云隐 阅读(1366) 评论(0) 推荐(0)
摘要:rvm 环境运行bundle install的时候报错:rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/net/http.rb:799解决办法:rvm pkg install iconvrvm pkg install opensslrvm reinstall 1.9.3 --with-openssl-dir=~/.rvm/usr --with-iconv-dir=~/.rvm/usr 阅读全文
posted @ 2012-05-27 08:17 云隐 阅读(131) 评论(0) 推荐(0)
摘要:RVM中文使用指南http://rvm.beginrescueend.com/RVM简介Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)。目前支持Ruby的大多数版本,有1.8.7,1.9.1,1.9.2和RubyEnterpriseEditon,通过RVM可以很方便的在多个Ruby版本中快速切换。RVM同时也支持JRuby设想当前工作在Ruby1.9.2+Rails3.0下,想体验最新的Rails开发版,怎么办?Gemset就是为解决这个问题而设计的,它可以为每个Ruby版本生成多个gemsets,各个gemset相互独立,这 阅读全文
posted @ 2012-05-27 07:09 云隐 阅读(879) 评论(0) 推荐(0)
摘要:MySQL索引的使用我们首先讨论索引,因为它是加快查询的最重要的工具。还有其他加快查询的技术,但是最有效的莫过于恰当地使用索引了。在 MySQL 的邮件清单上,人们通常询问关于使查询更快的问题。在大量的案例中,都是因为表上没有索引,一般只要加上索引就可以立即解决问题。但这样也并非总是有效,因为优化并非总是那样简单。然而,如果不使用索引,在许多情形下,用其他手段改善性能只会是浪费时间。应该首先考虑使用索引取得最大的性能改善,然后再寻求其他可能有帮助的技术。本节介绍索引是什么、它怎样改善查询性能、索引在什么情况下可能会降低性能,以及怎样为表选择索引。下一节,我们将讨论 MySQL 的查询优化程序。 阅读全文
posted @ 2012-05-27 06:15 云隐 阅读(3585) 评论(1) 推荐(1)
摘要:Redisredis是类似于memcached的高性能键值缓存工具,但它支持更多的值类型、功能更加丰富,且可以将存储内容定时持久化到磁盘中,是NoSQL家庭中出色的一员安装wget https://github.com/antirez/redis/tarball/2.2.0-rc2tar -xzvf antirez-redis-2.2.0-rc2-0-g0540df2.tar.gzcd antirez-redis-b703b5dmakesudo make install客户端redis-cli调试运行客户端后,输入命令monitor注意expireredis的expire命令有限制,执行此命令 阅读全文
posted @ 2012-05-26 22:25 云隐 阅读(3791) 评论(0) 推荐(0)
摘要:有时你在写迁移任务的时候可能会不小心写错,如果你已经执行了这个迁移任务,那么, 你就不能单纯地把它修改一下再重新执行一次, Rails 会认为这个迁移任务已经执行过了, 所以执行rake db:migrate时不会做任何操作。你应该先把写错的那个迁移任务回滚(可以执行rake db:rollback),然后修改你的migration再执行rake db:migrate去 执行正确的版本。新增一個 Migration 檔案rails g migration migration_namemigration_name 常見的命名方式有Add欄位名To表格名或是Remove欄位名To表格名,不過這沒有 阅读全文
posted @ 2012-05-24 05:54 云隐 阅读(3385) 评论(0) 推荐(0)
摘要:基礎操作如何新增ActiveRecord提供了四種API,分別是save、save!、create和create!:a = Category.new( :name => 'Ruby', :position => 1 )a.saveb = Category.new( :name => 'Perl', :position => 2 )b.save! Category.create( :name => 'Python', :position => 3 )c = Category.create!( :name => 阅读全文
posted @ 2012-05-20 16:12 云隐 阅读(2293) 评论(0) 推荐(0)
摘要:attr_accessor是Ruby语言的内置方法,此方法是为变量自动生成get set方法,从而可以省去一堆重复的get set方法。attr_accessible和attr_protected是rails框架提供的方法,使用的场景是如下的情况:收到表单,传统的方式是这样的:user = User.newuser.user_name = params["user[user_name]"]user.password = params["user[password]"]这个代码违法了DRY原则,所以rails支持用下面的方式来快速创建对象:user = U 阅读全文
posted @ 2012-05-20 15:53 云隐 阅读(2421) 评论(0) 推荐(1)