engine = create_engine('mysql://root:password@localhost/test?charset=utf8&use_unicode=0')
References :
sqlalchemy中文问题解决方案 - 江湖 - 51CTO技术博客
engine = create_engine('mysql://root:password@localhost/test?charset=utf8&use_unicode=0')
update foo set bar = bar - 1 where baz in ( select baz from ( select baz from foo where fooID = '1' ) as arbitraryTableName )
References :
MYSQL update with WHERE SELECT subquery error - Stack Overflow
mysql> SELECT * FROM `users` WHERE address REGEXP '台北市|新北市';
select t.Letter, t.Value from MyTable t inner join ( select Letter, sum(Value) as ValueSum from MyTable group by Letter ) ts on t.Letter = ts.Letter order by ts.ValueSum desc, t.Letter, t.Value desc
$ sysctl -a | grep fs.file-max目前系統所有程式已開啓的檔案數
fs.file-max = 146925
$ cat /proc/sys/fs/file-max
146925
$ lsof | wc -l每個 shell 允許開啓檔案數
18120
$ ulimit -nMySQL 最大允許開啓檔案數 (與 open_files_limit 變數設定 (default: 0) 或 ulimit 有關)
1024
mysql> show variables like 'open_files_limit';MySQL 開啓的檔案數
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1024 |
+------------------+-------+
$ pgrep mysqldMySQL 目前開啓的檔案數
1661
1988
$ ls /proc/1988/fdinfo/ | wc -l
248
$ lsof -a -d 1-999 -p 1988
mysql> show status like '%Open_files%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_files | 221 |
+---------------+-------+
#!/bin/bash
BACKUP_DIR=/tmp/db_backup
HOST='127.0.0.1'
USER='root'
PASSWORD='root'
DATABASE='mydb'
for T in `mysql -u $USER --password="$PASSWORD" -h $HOST -N -B -e "show tables from $DATABASE"`;
do
echo "Backing up $T"
mysqldump --skip-comments --compact -u $USER --password="$PASSWORD" -h $HOST $DATABASE $T > $BACKUP_DIR/$T.sql
done;
mysql> UPDATE FOO set FIELD2 = TRIM(Replace(Replace(Replace(FIELD2,'\t',''),'\n',''),'\r',''));
# apt-get install libmysqlclient-dev
mysql> ALTER TABLE tbl PARTITION BY KEY(col1) PARTITIONS 5;
mysql> ALTER TABLE tbl partition by range(`day`) (
partition p_2012 values less than (20130000),
partition p_2013 values less than (20140000)
);
mysql> ALERT TABLE tbl DROP PARTITION p0;
mysql> ALTER TABLE tbl REBUILD PARTITION p0, p1;
mysql> ALTER TABLE tbl ANALYZE PARTITION p0, p1;
mysql> ALTER TABLE tbl OPTIMIZE PARTITION p0, p1;
mysql> ALTER TABLE tbl REPAIR PARTITION p0, p1;mysql> ALTER TABLE tbl CHECK PARTITION p0, p1;
SELECT TABLE_NAME, PARTITION_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = 'db_name' ;
SHOW CREATE TABLE tbl_name;
SELECT PARTITION_ORDINAL_POSITION, TABLE_ROWS, PARTITION_METHOD
FROM information_schema.PARTITIONS
WHERE TABLE_SCHEMA = 'db_name' AND TABLE_NAME = 'tbl_name';
ALTER TABLE mytable ADD lastmodified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
References :
php - How to get ID of the last updated row in MySQL? - Stack Overflow
# apt-get install mysql-proxy
$ mysql-proxy -V
mysql-proxy 0.8.1$ mkdir mysql-proxy
chassis: mysql-proxy 0.8.1
glib2: 2.30.2
libevent: 2.0.21-stable
LUA: Lua 5.1.4
package.path: /usr/lib/mysql-proxy/lua/?.lua
package.cpath: /usr/lib/mysql-proxy/lua/?.so
-- modules
admin: 0.8.1
proxy: 0.8.1
$ cd mysql-proxy
$ wget https://raw.githubusercontent.com/cwarden/mysql-proxy/master/examples/tutorial-query-time.lua
$ vi mysql-proxy.cnf
[mysql-proxy]$ chmod 660 mysql-proxy.cnf
daemon = false
pid-file = /tmp/mysql-proxy.pid
log-file = /tmp/mysql-proxy.log
log-level = debug
admin-username = 1
admin-password = 1
admin-lua-script = /usr/share/mysql-proxy/admin.lua
proxy-address = 0.0.0.0:3307
proxy-backend-addresses = 192.168.24.204:3306
proxy-lua-script = /home/yan/mysql-proxy/tutorial-query-time.lua
$ mysql-proxy --defaults-file=mysql-proxy.cnf
LOAD DATA LOCAL INFILE '/tmp/bar.csv' INTO TABLE `foo` CHARACTER SET UTF8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
LOAD DATA INFILE '/tmp/bar.csv' INTO TABLE `foo` CHARACTER SET UTF8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
DATE_FORMAT(FROM_UNIXTIME(created), '%d/%m/%Y') DATE(FROM_UNIXTIME(created))