
进入“监控器”界面,选中"sitescope"点击右键,选择新建组,输入组的信息,如组名称为mysql。
右击组“mysql”,选择新建“监控器”,在新建监控器界面选择“数据库计数器”,如图所示:
数据库连接:输入jdbc:mysql://mysql服务器IP:端口号/数据库名称 (端口默认是3306可以不写出来)
查询:show status(表示把所有参数显示出来,然后进行选择)或是show status where variable_name like ‘其中的参数’(表示直接选择要监控的参数)
数据库驱动程序:org.gjt.mm.mysql.Driver
数据库的用户名和密码:root 密码
上述信息填写完毕后,点击“获取计数器”,在显示出来的计数器中勾选要监控的计数器,点击“确定”,添加计数器结束。
监测mysql到此结束。
计数器表
如果应用在表中保存计数器 则在更新计数器时可能碰到并发问题 计数器表在Web 应用中很常见 可以用这种表缓存一个用户的朋友数 文件下载次数等 创建一张独立的表存储计数器通常是个好主意 这样可使计数器表小且快 使用独立的表可以帮助避免查询缓存失效 并且可以使用本节展示的一些更高级的技巧
应该让事情变得尽可能简单 假设有一个计数器表 只有一行数据 记录网站的点击次数
问题在于 对于任何想要更新这一行的事务来说 这条记录上都有一个全局的互斥锁(mutex) 这会使得这些事务只能串行执行 要获得更高的并发更新性能 也可以将计数器保存在多行中 每次随机选择一行进行更新 这样做需要对计数器表进行如下修改
然后预先在这张表增加 行数据 现在选择一个随机的槽(slot)进行更新
如果希望减少表的行数 以避免表变得太大 可以写一个周期执行的任务 合并所有结果到 号槽 并且删除所有其他的槽
mysql>UPDATE daily_hit_counter as c
>INNER JOIN (
>SELECT day SUM(cnt) AS cnt MIN(slot) AS mslot
>FROM daily_hit_counter
>GROUP BY day
>) AS x USING(day)
>SET c cnt = IF(c slot = x mslot x cnt )
>c slot = IF(c slot = x mslot c slot)
mysql>DELETE FROM daily_hit_counter WHERE slot <>AND cnt =
更快地读 更慢地写
为了提升读查询的速度 经常会需要建一些额外索引 增加冗余列 甚至是创建缓存表和汇总表 这些方法会增加写查询的负担 也需要额外的维护任务 但在设计高性能数据库时 这些都是常见的技巧 虽然写 *** 作变得更慢了 但更显著地提高了读 *** 作的性能
然而 写 *** 作变慢并不是读 *** 作变得更快所付出的唯一代价 还可能同时增加了读 *** 作和写 *** 作的开发难度
返回目录 高性能MySQL
编辑推荐
ASP NET MVC 框架揭秘
Oracle索引技术
ASP NET开发培训视频教程
lishixinzhi/Article/program/MySQL/201311/29673
需要准备的工具:电脑,sql数据库。
1、首先新建一个test表,有id,name,second三个字段,其中name字段有重复数据。
2、输入“select name,max(second) from test group by name”语句,点击运行。
3、可以看到已经查询出按name分组后取出的second最大的一条记录。
4、以输入“select name,max(second) from test group by name order by max(second) desc”语句,按分组后second最大值进行降序。
5、如果想查询mysql分组后最小的一条记录,输入“select name,min(second) from test group by name”语句,点击运行即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)