zoukankan      html  css  js  c++  java
  • 数据库问题

    mysql

    事务问题。

    在一次开发过程中,发现mysql事务rollback没有起作用,研究了一下,发现事务还有如下特点:

    1、auto_increment值不会被rollback

    2、不是所有语句都支持事务,如create table和alter table不支持事务。

    3、如果一个事务中的某条语句不支持事务(比如有一条create table语句),那么所有查询都将被执行,不会rollback。

    4、当发生3的情况时,数据库查询记录上仍显示:

    BEGIN

    INSERT INTO ......

    CREATE TABLE ......

    ROLLBACK

    这时虽然显示rollback,实际上数据库内容并没有rollback,insert语句和create语句都被数据库执行了。

    按查询顺序排序:

    select id from users where id in (2,1,5,3,4);

    返回结果为:1,2,3,4,5

    select id from users where id in (2,1,5,3,4) order by field(id,2,1,5,3,4);

    返回结果为:2,1,5,3,4

    mysql配置变量(show variables like '%max%';)

    max_allowed_packet                数值在16M以上,如:20971520(20M)这个参数限制mysql返回数据量的大小。
    innodb_buffer_pool_size           数值调高,如:536870912(512M)
    query_cache_size                  调高,如:16777216(16M)
    query_cache_type                  调成ON
    以上配置对mysql影响比较大
    如果想开启慢查询log,修改以下变量数值:
    long_query_time                   0.400000
    slow_query_log                    ON
    slow_query_log_file               /var/run/mysqld/mysqld-slow.log

    redis

    rails使用resque处理任务,用命令行插入数据:

    redis-cli sismember resque:queues email_queue        # 1 or 0
    redis-cli sadd resque:queues email_queue    #如果上句返回值是0


    redis-cli rpush resque:queue:email_queue '{"class":"Email","args":[902,5,6]}'
    redis-cli rpush resque:queue:mailer '{"class":"Mailer","args":["email",5,{"from":"abc@def.ghi","email_id":1}]}'

    失败任务重新加入队列:

    (Resque::Failure.count-1).downto(0).each do |i|
      Resque::Failure.requeue(i)
      Resque::Failure.remove(i)
    end

    oracle

    查看表结构:

    SELECT T1.TABLE_NAME,
    T1.COLUMN_NAME,
    T1.DATA_TYPE || '(' || T1.DATA_LENGTH || ')',
    T2.COMMENTS
    FROM USER_TAB_COLS T1, USER_COL_COMMENTS T2
    WHERE T1.TABLE_NAME = T2.TABLE_NAME
    AND T1.COLUMN_NAME = T2.COLUMN_NAME
    AND T1.TABLE_NAME =upper('user_table_name') ;

  • 相关阅读:
    Java创建对象的几种方式
    Sqlserver建立Oracle的鏈接服務器
    千万级的大表!MySQL这样优化更好
    ConurrentHashMap和Hashtable的区别
    BTree和B+Tree详解
    为什么MySQL数据库索引选择使用B+树?
    网易跟贴这么火,背后的某个力量不可忽视
    知物由学 | 如何利用人工智能来对抗DDoS攻击?
    揭秘医疗安全防卫战:“我们仍在购买不安全的医疗设备”
    6月第5周业务风控关注 | 《网络安全等级保护条例(征求意见稿)》本周正式发布
  • 原文地址:https://www.cnblogs.com/zycjwdss/p/3317148.html
Copyright © 2011-2022 走看看