{"product_id":"mysql-administrators-bible-isbn-9780470416914","title":"MySQL Administrator's Bible","description":"With special focus on the next major release of MySQL, this resource provides a solid framework for anyone new to MySQL or transitioning from another database platform, as well as experience MySQL administrators. The high-profile author duo provides essential coverage of the fundamentals of MySQL database management—including MySQL’s unique approach to basic database features and functions—as well as coverage of SQL queries, data and index types, stores procedure and functions, triggers and views, and transactions. They also present comprehensive coverage of such topics as MySQL server tuning, managing storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more. \u003cp\u003eIntroduction xxvii\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I First Steps with MySQL \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Introduction to MySQL 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMySQL Mission — Speed, Reliability, and Ease of Use 3\u003c\/p\u003e \u003cp\u003eCompany background 4\u003c\/p\u003e \u003cp\u003eCommunity and Enterprise server versions 5\u003c\/p\u003e \u003cp\u003eThe MySQL Community 6\u003c\/p\u003e \u003cp\u003eHow to contribute 6\u003c\/p\u003e \u003cp\u003eReasons to contribute 7\u003c\/p\u003e \u003cp\u003eSummary 7\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Installing and Upgrading MySQL Server 9\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBefore Installation 9\u003c\/p\u003e \u003cp\u003eChoosing the MySQL version 11\u003c\/p\u003e \u003cp\u003eMySQL support 12\u003c\/p\u003e \u003cp\u003eDownloads 12\u003c\/p\u003e \u003cp\u003eInstallation 12\u003c\/p\u003e \u003cp\u003eMySQL Server installations on Unix 13\u003c\/p\u003e \u003cp\u003eMySQL Server Installation on Windows 20\u003c\/p\u003e \u003cp\u003eInstalling MySQL from a Noinstall Zip Archive 24\u003c\/p\u003e \u003cp\u003eStarting and stopping MySQL from the Windows command line 25\u003c\/p\u003e \u003cp\u003eStarting and stopping MySQL as a Windows service 26\u003c\/p\u003e \u003cp\u003eInitial Configuration 29\u003c\/p\u003e \u003cp\u003eUnix configuration file 31\u003c\/p\u003e \u003cp\u003eWindows configuration file 31\u003c\/p\u003e \u003cp\u003eMySQL Configuration Wizard on Windows 31\u003c\/p\u003e \u003cp\u003eDetailed Configuration 32\u003c\/p\u003e \u003cp\u003eThe Server Type screen 33\u003c\/p\u003e \u003cp\u003eDatabase Usage screen 33\u003c\/p\u003e \u003cp\u003eInnoDB Tablespace screen 34\u003c\/p\u003e \u003cp\u003eConcurrent Connections screen 34\u003c\/p\u003e \u003cp\u003eNetworking Options and Strict Mode Options screen 34\u003c\/p\u003e \u003cp\u003eCharacter Set screen 35\u003c\/p\u003e \u003cp\u003eService Options screen 35\u003c\/p\u003e \u003cp\u003eSecurity Options screen 35\u003c\/p\u003e \u003cp\u003eConfirmation screen 36\u003c\/p\u003e \u003cp\u003eMySQL Post-Install Configuration on Unix 36\u003c\/p\u003e \u003cp\u003eInitializing the system tables 36\u003c\/p\u003e \u003cp\u003eSetting initial passwords 37\u003c\/p\u003e \u003cp\u003eRoot user password assignment 37\u003c\/p\u003e \u003cp\u003eAnonymous users 39\u003c\/p\u003e \u003cp\u003eSecuring Your System 40\u003c\/p\u003e \u003cp\u003eWindows PATH Variable Configuration 42\u003c\/p\u003e \u003cp\u003eAutomated startup 42\u003c\/p\u003e \u003cp\u003eStarting and stopping mysqld on System V-based Unix 42\u003c\/p\u003e \u003cp\u003eSystem V run levels 43\u003c\/p\u003e \u003cp\u003eUpgrading mysqld 45\u003c\/p\u003e \u003cp\u003eThe MySQL changelog 45\u003c\/p\u003e \u003cp\u003eUpgrading MySQL on Windows 46\u003c\/p\u003e \u003cp\u003eTroubleshooting 47\u003c\/p\u003e \u003cp\u003eSummary 48\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Accessing MySQL 49\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAccessing mysqld with Command-Line Tools 49\u003c\/p\u003e \u003cp\u003eFrequently used options 50\u003c\/p\u003e \u003cp\u003eUsing the command-line mysql client 52\u003c\/p\u003e \u003cp\u003emysqladmin — Client for administering a server 62\u003c\/p\u003e \u003cp\u003eGUI Tools 66\u003c\/p\u003e \u003cp\u003eSQLyog 66\u003c\/p\u003e \u003cp\u003ephpMyAdmin 69\u003c\/p\u003e \u003cp\u003eMySQL Query Browser 71\u003c\/p\u003e \u003cp\u003eMySQL Administrator 74\u003c\/p\u003e \u003cp\u003eMySQL Workbench 80\u003c\/p\u003e \u003cp\u003eSummary 83\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II Developing with MySQL\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: How MySQL Extends and Deviates from SQL 87\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLearning MySQL Language Structure 88\u003c\/p\u003e \u003cp\u003eComments and portability 88\u003c\/p\u003e \u003cp\u003eCase-sensitivity 90\u003c\/p\u003e \u003cp\u003eEscape characters 91\u003c\/p\u003e \u003cp\u003eNaming limitations and quoting 93\u003c\/p\u003e \u003cp\u003eDot notation 95\u003c\/p\u003e \u003cp\u003eTime zones 97\u003c\/p\u003e \u003cp\u003eCharacter sets and collations 98\u003c\/p\u003e \u003cp\u003eUnderstanding MySQL Deviations 105\u003c\/p\u003e \u003cp\u003ePrivileges and permissions 110\u003c\/p\u003e \u003cp\u003eTransaction management 110\u003c\/p\u003e \u003cp\u003eCheck constraints 111\u003c\/p\u003e \u003cp\u003eUpsert statements 112\u003c\/p\u003e \u003cp\u003eUsing MySQL Extensions 114\u003c\/p\u003e \u003cp\u003eAliases 115\u003c\/p\u003e \u003cp\u003eAlter Table extensions 115\u003c\/p\u003e \u003cp\u003eCreate Extensions 118\u003c\/p\u003e \u003cp\u003eDML Extensions 119\u003c\/p\u003e \u003cp\u003eDrop Extensions 124\u003c\/p\u003e \u003cp\u003eThe LIMIT Extension 125\u003c\/p\u003e \u003cp\u003eSELECT Extensions 126\u003c\/p\u003e \u003cp\u003eSelect Into Outfile\/Select Into Dumpfile 126\u003c\/p\u003e \u003cp\u003eSql_Small_Result\/Sql_Big_Result 127\u003c\/p\u003e \u003cp\u003eUnion Order By 127\u003c\/p\u003e \u003cp\u003eSelect For Update 127\u003c\/p\u003e \u003cp\u003eSelect Lock In Share Mode 128\u003c\/p\u003e \u003cp\u003eDistinctrow 128\u003c\/p\u003e \u003cp\u003eSql_Buffer_Result 129\u003c\/p\u003e \u003cp\u003eHigh_Priority\/Low_Priority 129\u003c\/p\u003e \u003cp\u003eServer maintenance extensions 129\u003c\/p\u003e \u003cp\u003eThe Set extension and user-defined variables 131\u003c\/p\u003e \u003cp\u003eThe Show extension 135\u003c\/p\u003e \u003cp\u003eTable definition extensions 147\u003c\/p\u003e \u003cp\u003eTable maintenance extensions 150\u003c\/p\u003e \u003cp\u003eTransactional statement extensions 156\u003c\/p\u003e \u003cp\u003eSummary 158\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: MySQL Data Types 159\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLooking at MySQL Data Types 159\u003c\/p\u003e \u003cp\u003eCharacter String Types 160\u003c\/p\u003e \u003cp\u003eLength 162\u003c\/p\u003e \u003cp\u003eCharacter string type attributes 164\u003c\/p\u003e \u003cp\u003eNational Character String Types 166\u003c\/p\u003e \u003cp\u003eBinary Large Object String Types 168\u003c\/p\u003e \u003cp\u003eBlob values 169\u003c\/p\u003e \u003cp\u003eBinary values 169\u003c\/p\u003e \u003cp\u003eBinary length 169\u003c\/p\u003e \u003cp\u003eVarbinary length 170\u003c\/p\u003e \u003cp\u003eNumeric Types 170\u003c\/p\u003e \u003cp\u003eNumeric data sizes and ranges 172\u003c\/p\u003e \u003cp\u003eNumeric data type attributes 177\u003c\/p\u003e \u003cp\u003eBoolean Types 180\u003c\/p\u003e \u003cp\u003eDatetime Types 183\u003c\/p\u003e \u003cp\u003eAllowed input values 185\u003c\/p\u003e \u003cp\u003eMicrosecond input 186\u003c\/p\u003e \u003cp\u003eAutomatic updates 187\u003c\/p\u003e \u003cp\u003eConversion issues 188\u003c\/p\u003e \u003cp\u003eNumeric functions and Datetime types 188\u003c\/p\u003e \u003cp\u003eOther conversion issues 190\u003c\/p\u003e \u003cp\u003eDatetime data type attributes 191\u003c\/p\u003e \u003cp\u003eThe effect of time zones 192\u003c\/p\u003e \u003cp\u003eInterval Types 193\u003c\/p\u003e \u003cp\u003eENUM and SET Types 195\u003c\/p\u003e \u003cp\u003eEnumerations 195\u003c\/p\u003e \u003cp\u003eENUM and SET data type attributes 198\u003c\/p\u003e \u003cp\u003eChoosing SQL Modes 201\u003c\/p\u003e \u003cp\u003eInvalid data 201\u003c\/p\u003e \u003cp\u003eSQL modes 203\u003c\/p\u003e \u003cp\u003eUsing NULL Values 211\u003c\/p\u003e \u003cp\u003eFinding an Optimal Data Type for Existing Data 212\u003c\/p\u003e \u003cp\u003eSmall data samples and Procedure Analyse() 215\u003c\/p\u003e \u003cp\u003eSummary 217\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: MySQL Index Types 219\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLooking at Keys and Indexes 219\u003c\/p\u003e \u003cp\u003eUsing Indexes to Speed Up Lookups 221\u003c\/p\u003e \u003cp\u003eCreating and dropping indexes 223\u003c\/p\u003e \u003cp\u003eIndex order 225\u003c\/p\u003e \u003cp\u003eIndex length 226\u003c\/p\u003e \u003cp\u003eIndex types 228\u003c\/p\u003e \u003cp\u003eRedundant indexes 230\u003c\/p\u003e \u003cp\u003eCreating and Dropping Key Constraints 231\u003c\/p\u003e \u003cp\u003eCreating and dropping unique key constraints 231\u003c\/p\u003e \u003cp\u003eCreating and dropping foreign key constraints 232\u003c\/p\u003e \u003cp\u003eForeign key constraints and data changes 234\u003c\/p\u003e \u003cp\u003eRequirements for foreign key constraints 235\u003c\/p\u003e \u003cp\u003eUsing FULLTEXT Indexes 237\u003c\/p\u003e \u003cp\u003eSummary 239\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Stored Routines, Triggers, and Events 241\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eComparing Stored Routines, Triggers, and Events 241\u003c\/p\u003e \u003cp\u003eUsing Triggers 242\u003c\/p\u003e \u003cp\u003eCreating a trigger 243\u003c\/p\u003e \u003cp\u003eDropping a trigger 244\u003c\/p\u003e \u003cp\u003eMultiple SQL statements in triggers 245\u003c\/p\u003e \u003cp\u003eChanging a trigger 246\u003c\/p\u003e \u003cp\u003eTriggers on views and temporary tables 247\u003c\/p\u003e \u003cp\u003eTrigger runtime behavior 248\u003c\/p\u003e \u003cp\u003eFinding all triggers 252\u003c\/p\u003e \u003cp\u003eTrigger storage and backup 252\u003c\/p\u003e \u003cp\u003eTriggers and replication 254\u003c\/p\u003e \u003cp\u003eTrigger limitations 254\u003c\/p\u003e \u003cp\u003eUsing Stored Routines 255\u003c\/p\u003e \u003cp\u003ePerformance implications of stored routines 256\u003c\/p\u003e \u003cp\u003eStored procedures vs stored functions 256\u003c\/p\u003e \u003cp\u003eCreating a stored routine 256\u003c\/p\u003e \u003cp\u003eInvoking a stored procedure 259\u003c\/p\u003e \u003cp\u003eDropping a stored routine 261\u003c\/p\u003e \u003cp\u003eMultiple SQL statements in stored routines 261\u003c\/p\u003e \u003cp\u003eINOUT arguments to a stored procedure 261\u003c\/p\u003e \u003cp\u003eLocal variables 262\u003c\/p\u003e \u003cp\u003eStored routine runtime behavior 264\u003c\/p\u003e \u003cp\u003eOptions when creating routines 265\u003c\/p\u003e \u003cp\u003eCreating a basic stored function 268\u003c\/p\u003e \u003cp\u003eFull Create Function syntax 269\u003c\/p\u003e \u003cp\u003eInvoking a stored function 269\u003c\/p\u003e \u003cp\u003eChanging a stored routine 270\u003c\/p\u003e \u003cp\u003eNaming: stored routines 271\u003c\/p\u003e \u003cp\u003eStored procedure result sets 273\u003c\/p\u003e \u003cp\u003eStored routine errors and warnings 274\u003c\/p\u003e \u003cp\u003eConditions and handlers 275\u003c\/p\u003e \u003cp\u003eStored routine flow control 282\u003c\/p\u003e \u003cp\u003eRecursion 284\u003c\/p\u003e \u003cp\u003eStored routines and replication 285\u003c\/p\u003e \u003cp\u003eStored function limitations 285\u003c\/p\u003e \u003cp\u003eStored routine backup and storage 286\u003c\/p\u003e \u003cp\u003eUsing Cursors 287\u003c\/p\u003e \u003cp\u003eUsing Events 289\u003c\/p\u003e \u003cp\u003eTurning on the event scheduler 289\u003c\/p\u003e \u003cp\u003eCreating an event 291\u003c\/p\u003e \u003cp\u003eDropping an event 292\u003c\/p\u003e \u003cp\u003eMultiple SQL statements in events 293\u003c\/p\u003e \u003cp\u003eStart and end times for periodic events 293\u003c\/p\u003e \u003cp\u003eEvent status 294\u003c\/p\u003e \u003cp\u003eFinding all events 295\u003c\/p\u003e \u003cp\u003eChanging an event 295\u003c\/p\u003e \u003cp\u003eAfter the last execution of an event 296\u003c\/p\u003e \u003cp\u003eEvent logging 297\u003c\/p\u003e \u003cp\u003eEvent runtime behavior 298\u003c\/p\u003e \u003cp\u003eEvent limitations 299\u003c\/p\u003e \u003cp\u003eEvent backup and storage 300\u003c\/p\u003e \u003cp\u003eSummary 300\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: MySQL Views 301\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDefining Views 302\u003c\/p\u003e \u003cp\u003eView definition limitations and unexpected behavior 304\u003c\/p\u003e \u003cp\u003eSecurity and privacy 305\u003c\/p\u003e \u003cp\u003eSpecify a view’s definer 306\u003c\/p\u003e \u003cp\u003eAbstraction and simplification 307\u003c\/p\u003e \u003cp\u003ePerformance 308\u003c\/p\u003e \u003cp\u003eUpdatable views 313\u003c\/p\u003e \u003cp\u003eChanging a View Definition 317\u003c\/p\u003e \u003cp\u003eReplication and Views 317\u003c\/p\u003e \u003cp\u003eSummary 318\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Transactions in MySQL 319\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding ACID Compliance 320\u003c\/p\u003e \u003cp\u003eAtomicity 321\u003c\/p\u003e \u003cp\u003eConsistency 321\u003c\/p\u003e \u003cp\u003eIsolation 321\u003c\/p\u003e \u003cp\u003eDurability 321\u003c\/p\u003e \u003cp\u003eUsing Transactional Statements 322\u003c\/p\u003e \u003cp\u003eBegin, Begin Work, and Start Transaction 322\u003c\/p\u003e \u003cp\u003eCommit 322\u003c\/p\u003e \u003cp\u003eRollback 322\u003c\/p\u003e \u003cp\u003eSavepoints 323\u003c\/p\u003e \u003cp\u003eAutocommit 324\u003c\/p\u003e \u003cp\u003eUsing Isolation Levels 325\u003c\/p\u003e \u003cp\u003eRead Uncommited 329\u003c\/p\u003e \u003cp\u003eRead Committed 331\u003c\/p\u003e \u003cp\u003eRepeatable Read 332\u003c\/p\u003e \u003cp\u003eSerializable 334\u003c\/p\u003e \u003cp\u003eMulti-version concurrency control 335\u003c\/p\u003e \u003cp\u003eExplaining Locking and Deadlocks 336\u003c\/p\u003e \u003cp\u003eTable-level locks 338\u003c\/p\u003e \u003cp\u003ePage-level locks 341\u003c\/p\u003e \u003cp\u003eRow-level locks 341\u003c\/p\u003e \u003cp\u003eRecovering MySQL Transactions 343\u003c\/p\u003e \u003cp\u003eSummary 344\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III Core MySQL Administration\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: MySQL Server Tuning 349\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eChoosing Optimal Hardware 349\u003c\/p\u003e \u003cp\u003eTuning the Operating System 352\u003c\/p\u003e \u003cp\u003eOperating system architecture 352\u003c\/p\u003e \u003cp\u003eFile systems and partitions 353\u003c\/p\u003e \u003cp\u003eBuffers 356\u003c\/p\u003e \u003cp\u003eKernel parameters 357\u003c\/p\u003e \u003cp\u003eLinux 357\u003c\/p\u003e \u003cp\u003eOther daemons 360\u003c\/p\u003e \u003cp\u003eTuning MySQL Server 360\u003c\/p\u003e \u003cp\u003eStatus variables 360\u003c\/p\u003e \u003cp\u003eSystem variables 361\u003c\/p\u003e \u003cp\u003eOption file 361\u003c\/p\u003e \u003cp\u003eDynamic variables 371\u003c\/p\u003e \u003cp\u003eSummary 373\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: Storage Engines 375\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Storage Engines 375\u003c\/p\u003e \u003cp\u003eStorage engines as plugins 376\u003c\/p\u003e \u003cp\u003eStorage engine comparison 376\u003c\/p\u003e \u003cp\u003eUsing Different Storage Engines 378\u003c\/p\u003e \u003cp\u003eMyISAM storage engine 378\u003c\/p\u003e \u003cp\u003eInnoDB storage engine 384\u003c\/p\u003e \u003cp\u003eMemory storage engine 394\u003c\/p\u003e \u003cp\u003eMaria storage engine 396\u003c\/p\u003e \u003cp\u003eFalcon storage engine 401\u003c\/p\u003e \u003cp\u003ePBXT storage engine 410\u003c\/p\u003e \u003cp\u003eFederated storage engine 415\u003c\/p\u003e \u003cp\u003eNDB storage engine 417\u003c\/p\u003e \u003cp\u003eArchive storage engine 417\u003c\/p\u003e \u003cp\u003eBlackhole storage engine 419\u003c\/p\u003e \u003cp\u003eCSV storage engine 420\u003c\/p\u003e \u003cp\u003eWorking with Storage Engines 421\u003c\/p\u003e \u003cp\u003eCreate Table 421\u003c\/p\u003e \u003cp\u003eAlter Table 421\u003c\/p\u003e \u003cp\u003eDrop Table 422\u003c\/p\u003e \u003cp\u003eSummary 422\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Caching with MySQL 423\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eImplementing Cache Tables 424\u003c\/p\u003e \u003cp\u003eWorking with the Query Cache 427\u003c\/p\u003e \u003cp\u003eWhat gets stored in the query cache? 427\u003c\/p\u003e \u003cp\u003eQuery cache memory usage and tuning 429\u003c\/p\u003e \u003cp\u003eQuery cache fragmentation 433\u003c\/p\u003e \u003cp\u003eUtilizing memcached 434\u003c\/p\u003e \u003cp\u003eSummary 438\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Backups and Recovery 439\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBacking Up MySQL 439\u003c\/p\u003e \u003cp\u003eUses for backups 441\u003c\/p\u003e \u003cp\u003eBackup frequency 443\u003c\/p\u003e \u003cp\u003eWhat to back up 445\u003c\/p\u003e \u003cp\u003eBackup locations 445\u003c\/p\u003e \u003cp\u003eBackup methods 445\u003c\/p\u003e \u003cp\u003eOnline backup 460\u003c\/p\u003e \u003cp\u003emysqlhotcopy 462\u003c\/p\u003e \u003cp\u003eCommercial options 464\u003c\/p\u003e \u003cp\u003eCopying Databases to Another Machine 467\u003c\/p\u003e \u003cp\u003eRecovering from Crashes 468\u003c\/p\u003e \u003cp\u003ePlanning for Disasters 471\u003c\/p\u003e \u003cp\u003eSummary 472\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: User Management 473\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLearning about MySQL Users 473\u003c\/p\u003e \u003cp\u003eAccess Control Lists 474\u003c\/p\u003e \u003cp\u003eWildcards 475\u003c\/p\u003e \u003cp\u003eSystem tables 476\u003c\/p\u003e \u003cp\u003eManaging User Accounts 478\u003c\/p\u003e \u003cp\u003eGrant and Revoke commands 481\u003c\/p\u003e \u003cp\u003eShow Grants and mk-show-grants 485\u003c\/p\u003e \u003cp\u003eResetting the Root Password 487\u003c\/p\u003e \u003cp\u003eWindows server 488\u003c\/p\u003e \u003cp\u003eUnix-based server 489\u003c\/p\u003e \u003cp\u003eDebugging User Account Problems 490\u003c\/p\u003e \u003cp\u003eBad password 490\u003c\/p\u003e \u003cp\u003eAccess issues 491\u003c\/p\u003e \u003cp\u003eClient does not support authentication protocol 491\u003c\/p\u003e \u003cp\u003eCan’t connect to local mysqld through socket ‘\/path\/to\/mysqld.sock’ 492\u003c\/p\u003e \u003cp\u003eI do not have the right permissions! 493\u003c\/p\u003e \u003cp\u003eSummary 494\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: Partitioning 495\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLearning about Partitioning 495\u003c\/p\u003e \u003cp\u003ePartitioning Tables 496\u003c\/p\u003e \u003cp\u003eRANGE partitioning 497\u003c\/p\u003e \u003cp\u003eLIST partitioning 502\u003c\/p\u003e \u003cp\u003eHASH partitioning 503\u003c\/p\u003e \u003cp\u003eKEY partitioning 504\u003c\/p\u003e \u003cp\u003eComposite partitioning 504\u003c\/p\u003e \u003cp\u003ePartition management commands 507\u003c\/p\u003e \u003cp\u003eRestrictions of partitioning 510\u003c\/p\u003e \u003cp\u003eMerge Tables 510\u003c\/p\u003e \u003cp\u003eCreating a Merge table 511\u003c\/p\u003e \u003cp\u003eChanging a Merge table 512\u003c\/p\u003e \u003cp\u003eAdvantages of Merge tables 513\u003c\/p\u003e \u003cp\u003ePartitioning with MySQL Cluster 513\u003c\/p\u003e \u003cp\u003eProgrammatic Partitioning 514\u003c\/p\u003e \u003cp\u003eSummary 514\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: Logging and Replication 517\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLog Files 517\u003c\/p\u003e \u003cp\u003eError log 517\u003c\/p\u003e \u003cp\u003eBinary logs 518\u003c\/p\u003e \u003cp\u003eRelay logs 520\u003c\/p\u003e \u003cp\u003eGeneral and slow query logs 520\u003c\/p\u003e \u003cp\u003eRotating logs 522\u003c\/p\u003e \u003cp\u003eOther methods of rotating 523\u003c\/p\u003e \u003cp\u003eReplication 524\u003c\/p\u003e \u003cp\u003eSetting up semisynchronous replication 525\u003c\/p\u003e \u003cp\u003eStatement-based, row-based, and mixed-based replication 527\u003c\/p\u003e \u003cp\u003eReplication Configurations 529\u003c\/p\u003e \u003cp\u003eSimple replication 529\u003c\/p\u003e \u003cp\u003eChange Master statement 534\u003c\/p\u003e \u003cp\u003eMore complex setups 534\u003c\/p\u003e \u003cp\u003eAdditional replication configuration options 539\u003c\/p\u003e \u003cp\u003eCorrecting Data Drift 540\u003c\/p\u003e \u003cp\u003emk-table-checksum overview 540\u003c\/p\u003e \u003cp\u003emk-table-sync overview 542\u003c\/p\u003e \u003cp\u003ePutting this together 542\u003c\/p\u003e \u003cp\u003eSummary 543\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 17: Measuring Performance 545\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBenchmarking 546\u003c\/p\u003e \u003cp\u003emysqlslap 547\u003c\/p\u003e \u003cp\u003eSysBench 552\u003c\/p\u003e \u003cp\u003eBenchmarking recommendations 565\u003c\/p\u003e \u003cp\u003eProfiling 566\u003c\/p\u003e \u003cp\u003eShow Global Status 566\u003c\/p\u003e \u003cp\u003emysqltuner 568\u003c\/p\u003e \u003cp\u003emysqlreport 572\u003c\/p\u003e \u003cp\u003emk-query-profiler 580\u003c\/p\u003e \u003cp\u003emysqldumpslow 583\u003c\/p\u003e \u003cp\u003eCapacity Planning 585\u003c\/p\u003e \u003cp\u003eSummary 585\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart IV Extending Your Skills\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 18: Query Analysis and Index Tuning 589\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing Explain 590\u003c\/p\u003e \u003cp\u003eExplain plan basics 590\u003c\/p\u003e \u003cp\u003eData access strategy 596\u003c\/p\u003e \u003cp\u003eExplain plan indexes 606\u003c\/p\u003e \u003cp\u003eRows 607\u003c\/p\u003e \u003cp\u003eExtra 608\u003c\/p\u003e \u003cp\u003eSubqueries and Explain 611\u003c\/p\u003e \u003cp\u003eExplain Extended 612\u003c\/p\u003e \u003cp\u003eExplain on Non-Select Statements 614\u003c\/p\u003e \u003cp\u003eOther Query Analysis Tools 614\u003c\/p\u003e \u003cp\u003eOptimizing Queries 615\u003c\/p\u003e \u003cp\u003eFactors affecting key usage 615\u003c\/p\u003e \u003cp\u003eOptimizer hints 616\u003c\/p\u003e \u003cp\u003eAdding an Index 616\u003c\/p\u003e \u003cp\u003eOptimizing away Using temporary 620\u003c\/p\u003e \u003cp\u003eUsing an index by eliminating functions 623\u003c\/p\u003e \u003cp\u003eNon-index schema changes 626\u003c\/p\u003e \u003cp\u003eBatching expensive operations 628\u003c\/p\u003e \u003cp\u003eOptimizing frequent operations 629\u003c\/p\u003e \u003cp\u003eSummary 631\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 19: Monitoring Your Systems 633\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDeciding What to Monitor 634\u003c\/p\u003e \u003cp\u003eExamining Open Source Monitoring 636\u003c\/p\u003e \u003cp\u003eNagios 636\u003c\/p\u003e \u003cp\u003eCacti 637\u003c\/p\u003e \u003cp\u003eHyperic HQ 638\u003c\/p\u003e \u003cp\u003eOpenNMS 640\u003c\/p\u003e \u003cp\u003eZenoss Core 641\u003c\/p\u003e \u003cp\u003eMunin 642\u003c\/p\u003e \u003cp\u003eMonit 643\u003c\/p\u003e \u003cp\u003eExamining Commercial Monitoring 644\u003c\/p\u003e \u003cp\u003eMySQL enterprise monitor 644\u003c\/p\u003e \u003cp\u003eMONyog 645\u003c\/p\u003e \u003cp\u003eSummary 646\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 20: Securing MySQL 649\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAccess Control Lists 649\u003c\/p\u003e \u003cp\u003eWildcards and blank values 650\u003c\/p\u003e \u003cp\u003ePrivilege and privilege levels 651\u003c\/p\u003e \u003cp\u003eAccessing the Operating System 654\u003c\/p\u003e \u003cp\u003eDatabase access 654\u003c\/p\u003e \u003cp\u003eChanging MySQL connectivity defaults 654\u003c\/p\u003e \u003cp\u003eOperating system login 654\u003c\/p\u003e \u003cp\u003eSecuring Backups and Logs 656\u003c\/p\u003e \u003cp\u003eData Security 656\u003c\/p\u003e \u003cp\u003eData flow 657\u003c\/p\u003e \u003cp\u003eEncrypted connectivity 659\u003c\/p\u003e \u003cp\u003eData security using MySQL objects 664\u003c\/p\u003e \u003cp\u003eCreating Security Policies 665\u003c\/p\u003e \u003cp\u003eSummary 666\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 21: The MySQL Data Dictionary 667\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eObject Catalog 668\u003c\/p\u003e \u003cp\u003eSchemata 668\u003c\/p\u003e \u003cp\u003eTables 670\u003c\/p\u003e \u003cp\u003eViews 674\u003c\/p\u003e \u003cp\u003eColumns 676\u003c\/p\u003e \u003cp\u003eStatistics 679\u003c\/p\u003e \u003cp\u003eTable_Constraints 681\u003c\/p\u003e \u003cp\u003eKey_Column_Usage 682\u003c\/p\u003e \u003cp\u003eReferential_Constraints 684\u003c\/p\u003e \u003cp\u003eTriggers 685\u003c\/p\u003e \u003cp\u003eRoutines 686\u003c\/p\u003e \u003cp\u003eParameters 690\u003c\/p\u003e \u003cp\u003eEvents 691\u003c\/p\u003e \u003cp\u003ePartitions 693\u003c\/p\u003e \u003cp\u003eSystem Information 695\u003c\/p\u003e \u003cp\u003eCharacter_Sets 695\u003c\/p\u003e \u003cp\u003eCollations 696\u003c\/p\u003e \u003cp\u003eCollation_Character_Set_Applicability 696\u003c\/p\u003e \u003cp\u003eEngines 697\u003c\/p\u003e \u003cp\u003ePlugins 697\u003c\/p\u003e \u003cp\u003eProcesslist 698\u003c\/p\u003e \u003cp\u003eProfiling 709\u003c\/p\u003e \u003cp\u003eGlobal_Variables 710\u003c\/p\u003e \u003cp\u003eSession_Variables 710\u003c\/p\u003e \u003cp\u003eGlobal_Status 711\u003c\/p\u003e \u003cp\u003eSession_Status 711\u003c\/p\u003e \u003cp\u003eDisplaying Permissions 711\u003c\/p\u003e \u003cp\u003eColumn_Privileges 712\u003c\/p\u003e \u003cp\u003eTable_Privileges 713\u003c\/p\u003e \u003cp\u003eSchema_Privileges 714\u003c\/p\u003e \u003cp\u003eUser_Privileges 715\u003c\/p\u003e \u003cp\u003eStorage Engine-Specific Metadata 716\u003c\/p\u003e \u003cp\u003eCustom Metadata 716\u003c\/p\u003e \u003cp\u003eDefining the plugin 716\u003c\/p\u003e \u003cp\u003eCompiling the plugin 722\u003c\/p\u003e \u003cp\u003eInstalling the plugin 724\u003c\/p\u003e \u003cp\u003eSummary 725\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 22: Scaling and High Availability Architectures 727\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eReplication 728\u003c\/p\u003e \u003cp\u003eOne read slave 729\u003c\/p\u003e \u003cp\u003ePromoting a new master 729\u003c\/p\u003e \u003cp\u003eMany read slaves 734\u003c\/p\u003e \u003cp\u003eMaster\/master replication 735\u003c\/p\u003e \u003cp\u003eCircular replication 736\u003c\/p\u003e \u003cp\u003eSAN 737\u003c\/p\u003e \u003cp\u003eDRBD 738\u003c\/p\u003e \u003cp\u003eMySQL and DRBD setup 738\u003c\/p\u003e \u003cp\u003eMySQL Proxy 739\u003c\/p\u003e \u003cp\u003eScaling read queries 740\u003c\/p\u003e \u003cp\u003eAutomated failover 740\u003c\/p\u003e \u003cp\u003eRead\/write splitting 742\u003c\/p\u003e \u003cp\u003eSharding 742\u003c\/p\u003e \u003cp\u003eLinux-HA Heartbeat 742\u003c\/p\u003e \u003cp\u003eMySQL Cluster 744\u003c\/p\u003e \u003cp\u003eConnection Pooling 746\u003c\/p\u003e \u003cp\u003ememcached 747\u003c\/p\u003e \u003cp\u003eSummary 748\u003c\/p\u003e \u003cp\u003eAppendix A: MySQL Proxy 749\u003c\/p\u003e \u003cp\u003eAppendix B: Functions and Operators 783\u003c\/p\u003e \u003cp\u003eAppendix C: Resources 813\u003c\/p\u003e \u003cp\u003eIndex 821\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eSheeri K. Cabral\u003c\/b\u003e won the MySQL Community Member of the Year award in 2007 and 2008. She organizes the Boston, Massachusetts, USA, MySQL User Group -- which she founded in November 2005 -- and produces freely available presentation videos as well as \u003ci\u003eOurSQL: The MySQL Database Podcast\u003c\/i\u003e for the Community, by the Community. You can check out her prolific blog postings at www.technocation.org.\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKeith Murphy\u003c\/b\u003e is a MySQL database administrator who has been using MySQL server since 1998. He recently formed Paragon Consulting Services (www.paragon-cs.com) to provide consulting services for companies seeking MySQL training and help with MySQL solutions ranging from everyday database administration tasks to utilizing \"cloud\" computing services, performance tuning and scaling. Keith blogs at blog.paragon-cs.com in addition he is the editor of \u003ci\u003eMySQL Magazine\u003c\/i\u003e (www.mysqlzine.net). Readers are invited to contact Keith by email at bmurphy@pargon-cs.com.\u003c\/p\u003e \u003cp\u003e\u003cb\u003eWhether you're a novice or experienced DBA, this book has all you need to learn MySQL\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMySQL Administrator's Bible is designed to provide a solid framework for a beginning MySQL DBA or an experienced DBA transitioning from another database platform. The book starts with the fundamentals of MySQL database management, including MySQL's unique approach to SQL queries, data and index types, stored procedures and functions, triggers and views, and transactions. The authors continue with comprehensive coverage of major MySQL Server components and processes for which DBAs are responsible—these include:\u003c\/p\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eMySQL Server tuning\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eQuery optimization and index tuning\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eManaging storage engines\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eCaching\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eAuthentication and managing users\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003ePartitioning; Replication; Logging\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eDatabase and performance monitoring\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eSecurity; Backup and Recovery\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eManaging availability and scaling\u003c\/p\u003e \u003c\/li\u003e \u003cli\u003e \u003cp\u003eFully covers MySQL 5.1\u003c\/p\u003e \u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eCompanion Web Site\u003c\/p\u003e \u003cp\u003eThe book's Companion Web Site includes a tutorial on foundational SQL programming that all MySQL DBAs need to understand, plus code examples, scripts, and data schemas used in the book. You'll also learn about the latest changes in MySQL and find helpful links. Visit the site at www.wiley.com\/go\/mysqladminbible.\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989667397861,"sku":"NP9780470416914","price":60.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9780470416914.jpg?v=1761785026","url":"https:\/\/k12savings.com\/products\/mysql-administrators-bible-isbn-9780470416914","provider":"K12savings","version":"1.0","type":"link"}