Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
## The query [sql] insert into places (name,type,parent_id) select w.accent_city,'Feature',p.id from worldcities w join regions_fips r on w.iso_region = r.fips_region join places p on r.fips_region = p.abreviation where p.type = 'Region'; ## The structure [sql] mysql> show create table regions_fips \G *************************** 1. row *************************** Table: regions_fips Create Table: CREATE TABLE `regions_fips` ( `iso_country` varchar(2) default NULL, `fips_region` varchar(2) default NULL, `name` varchar(255) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec) mysql> show create table places \G *************************** 1. row *************************** Table: places Create Table: CREATE TABLE `places` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, `permalink` varchar(255) default NULL, `parent_id` int(11) default NULL, `abreviation` varchar(3) default NULL, `type` varchar(255) default NULL, `is_approved` tinyint(1) NOT NULL default '0', `permalinks` varchar(255) default NULL, `pictures_permalinks` varchar(255) default NULL, `picture_id` int(11) default NULL, `pictures_count` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec) mysql> show create table worldcities \G *************************** 1. row *************************** Table: worldcities Create Table: CREATE TABLE `worldcities` ( `iso_country` varchar(2) default NULL, `city` varchar(255) default NULL, `accent_city` varchar(255) default NULL, `iso_region` varchar(2) default NULL, `longitude` float default NULL, `latitude` float default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec) ## Explain [sql] EXPLAIN select w.accent_city,'Feature',p.id from worldcities w join regions_fips r on w.iso_region = r.fips_region join places p on r.fips_region = p.abreviation where p.type = 'Region' +----+-------------+-------+------+---------------+------+---------+------+---------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+------+---------+------+---------+-------------+ | 1 | SIMPLE | r | ALL | NULL | NULL | NULL | NULL | 4417 | | | 1 | SIMPLE | p | ALL | NULL | NULL | NULL | NULL | 238275 | Using where | | 1 | SIMPLE | w | ALL | NULL | NULL | NULL | NULL | 2659856 | Using where | +----+-------------+-------+------+---------------+------+---------+------+---------+-------------+ ## The status of the tables [plaintext] mysql> SHOW TABLE STATUS LIKE 'places' \G *************************** 1. row *************************** Name: places Engine: InnoDB Version: 10 Row_format: Compact Rows: 238275 Avg_row_length: 59 Data_length: 14172160 Max_data_length: 0 Index_length: 0 Data_free: 0 Auto_increment: 252808 Create_time: 2007-05-10 22:03:25 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: InnoDB free: 120832 kB 1 row in set (0.06 sec) mysql> SHOW TABLE STATUS LIKE 'worldcities' \G *************************** 1. row *************************** Name: worldcities Engine: InnoDB Version: 10 Row_format: Compact Rows: 2659856 Avg_row_length: 65 Data_length: 174800896 Max_data_length: 0 Index_length: 0 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-12 18:28:04 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: InnoDB free: 120832 kB 1 row in set (0.06 sec) mysql> SHOW TABLE STATUS LIKE 'regions_fips' \G *************************** 1. row *************************** Name: regions_fips Engine: InnoDB Version: 10 Row_format: Compact Rows: 4417 Avg_row_length: 48 Data_length: 212992 Max_data_length: 0 Index_length: 0 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-12 18:28:04 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: InnoDB free: 120832 kB 1 row in set (0.00 sec) ## my.cnf # /etc/mysql/my.cnf: The global mysql configuration file. # $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/my.cnf-4.1,v 1.3 2006/05/05 19:51:40 chtekk Exp $ # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /var/run/mysqld/mysqld.sock [mysql] character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8 [mysqladmin] character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8 [mysqlcheck] character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8 [mysqldump] character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8 [mysqlimport] character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8 [mysqlshow] character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8 [myisamchk] character-sets-dir=/usr/share/mysql/charsets [myisampack] character-sets-dir=/usr/share/mysql/charsets # use [safe_mysqld] with mysql-3 [mysqld_safe] err-log = /var/log/mysql/mysql.err # add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations [mysqld] character-set-server = utf8 default-character-set = utf8 user = mysql port = 3306 socket = /var/run/mysqld/mysqld.sock pid-file = /var/run/mysqld/mysqld.pid log-error = /var/log/mysql/mysqld.err basedir = /usr datadir = /var/lib/mysql skip-locking key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M language = /usr/share/mysql/english # security: # using "localhost" in connects uses sockets by default skip-networking bind-address = 127.0.0.1 log-bin server-id = 1 # point the following paths to different dedicated disks tmpdir = /tmp/ #log-update = /path-to-dedicated-directory/hostname # you need the debug USE flag enabled to use the following directives, # if needed, uncomment them, start the server and issue # #tail -f /tmp/mysqld.sql /tmp/mysqld.trace # this will show you *exactly* what's happening in your server ;) #log = /tmp/mysqld.sql #gdb #debug = d:t:i:o,/tmp/mysqld.trace #one-thread # uncomment the following directives if you are using BDB tables #bdb_cache_size = 4M #bdb_max_lock = 10000 # the following is the InnoDB configuration # if you wish to disable innodb instead # uncomment just the next line #skip-innodb # # the rest of the innodb config follows: # don't eat too much memory, we're trying to be safe on 64Mb boxes # you might want to bump this up a bit on boxes with more RAM innodb_buffer_pool_size = 32M # this is the default, increase it if you have lots of tables innodb_additional_mem_pool_size = 2M # # i'd like to use /var/lib/mysql/innodb, but that is seen as a database :-( # and upstream wants things to be under /var/lib/mysql/, so that's the route # we have to take for the moment #innodb_data_home_dir = /var/lib/mysql/ #innodb_log_arch_dir = /var/lib/mysql/ #innodb_log_group_home_dir = /var/lib/mysql/ # you may wish to change this size to be more suitable for your system # the max is there to avoid run-away growth on your machine innodb_data_file_path = ibdata1:10M:autoextend # we keep this at around 25% of of innodb_buffer_pool_size # sensible values range from 1MB to (1/innodb_log_files_in_group*innodb_buffer_pool_size) innodb_log_file_size = 5M # this is the default, increase it if you have very large transactions going on innodb_log_buffer_size = 8M # this is the default and won't hurt you # you shouldn't need to tweak it set-variable = innodb_log_files_in_group=2 # see the innodb config docs, the other options are not always safe innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] # uncomment the next directive if you are not familiar with SQL #safe-updates [isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
This paste will be private.
From the Design Piracy series on my blog: